한 걸음 두 걸음
유니티 특강 Day5 ] ray이벤트처리 / Video 비디오 및 전환/ insideout 본문
ray 이해하기
일정한 방향을 나타내는 것이 ray라는 것을 알 수 있다.(ray가 방향을 만들기 위해 사용하는 두 벡터 점을 갖고 있다. 이는 origin, dir값으로 나뉘어 console창에서 확인할 수 있다.)
이제 카메라 시점으로 ray를 사용하고 싶으니 camera ray 키워드로 검색해서 찾아보자면
위와같은 것이 나온다.
HMD 기계는 보통 카메라나 컨트롤러로 제어한다. (PC - mouse / keyboard )
으아아 노정신하다;;
다운받은 스크립트인데 (navigation) 너무 정신없어.. 스크립트 다운받아서 적용함
여기서는 구에 insideout 효과를 주는 것까지 완료함.
이제 button 에 onClick 이벤트를 적용시켜서 동영상 변경까지 했는데
이후에 동영상 내부에서 돌아다니는 것도 구현하면 좋을 듯!
이는 동영상 video Clip 메소드가 제공되어있어서 그냥 가져다썼는데 새로 만들어보자면
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.Video;
public class MaterialChange : MonoBehaviour
{
// public VideoPlayer vid1;
public VideoClip vc1;
public void vidTog() {
gameObject.GetComponent<VideoPlayer>().clip = vc1;
}
}
이렇게 만들어주면 된다. 여기서 unityEngine에서 Video를 가져다 썼기 때문에 새로운 비디오 객체인 vidioClip이나 VideoPlayer등의 객체를 가져다 쓸 수 있게 되었다. 그러기때문에 앞으로도 뭔가 객체를 가져다 써야하지만 빨간줄이 생기는 경우에는 unityEngine 뒤에 쳐서 뭔가 더 있나 확인해보야한다. *이 아니었나보다.
이제 추가적으로 controller차이에 따른 설정을 해봅시다,
지금은 PC로하고있기때문에 마우스클릭을 받지만 VR기기에서는 광선 터치로 먹기 때문에 이를 반영해보자
카메라에
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class rayButton : MonoBehaviour
{
public Camera cam;
void Update()
{
RaycastHit hit;
//Ray ray = cam.ScreenPointToRay(Input.mousePosition);//씬의 카메라의 태그를 main camera로 설정을 해야 한다.
Vector3 forward = transform.TransformDirection(Vector3.forward) * 1000;
Debug.DrawRay(transform.position, forward, Color.red);
}
}
넣어서 mainCamera 객체로 넣어준 다음, 실행시키면
이렇게 카메라에서 광선 나오는 것도 확인가능함!!
으으,,,ㅋㅋㅋㅋ 광선으로 버튼 hit하면 버튼 눌리는 이벤트 ㅎ발생해서 동영상 바꾸는 거 만들고있는데
충돌이 일어나고있지 않으니 button collider 추가해줬어염!
edit collider로 작디작은 범위를 늘려주어야해여
엄청 넓혀놨더니 충돌 발생해서 동영상 바꼈다!!! 성공햇따!! 이제 집가서 복습함ㄴ서 왜그런지 이해해야겟따 아 꺄 ㅇ
UI다보니까 원래 collider가 없는데 이를 넣어서 늘려줬어요오
vidTog없던데 난 ㅠㅠ ㅠ_ㅠ 저게뭐람
왜 갑자기 생겼대.. 내가 만든 커스텀 스크립트 중 하나인 거 같으니 확인해봅시다아아
아 이거!! 그냥 동영상 바꿔주는 스크립트인데 ? 이미 제공된 스크립트? 메소드가 있어서 그거 사용하고 있었음!! 하여튼 이런거라니, 사용되었으니 좋음!
https://vimeo.com/134639706
참고 url
'Unity' 카테고리의 다른 글
유니티 특강 ] 애니메이션 추가제어 / 탄성계수 / light 처리 (0) | 2019.01.28 |
---|---|
유니티] ACI 이론 & 애니메이션 이벤트 (0) | 2019.01.28 |
Unity ] Ray 선 (Script함수 활용) DrawRay / RaycastHit 등 이벤트처리 (0) | 2019.01.25 |
unity 유니티 ] NaviMeshAgent으로 네비게이션 사용하기 (0) | 2019.01.24 |
unity 유니티 ] Text bestfit 이용하기 (0) | 2019.01.24 |