프로그래밍/Unity | 2014. 6. 21. 21:03
카메라 광선 (Rays)
유니티 공식 문서
http://unitykoreawiki.com/index.php?n=KrMain.CameraRays
Rays가 뭐죠?
시작점(Origin), 방향(Direction)을 가지고, 시작점에서 정해진 방향으로 광선을 쏩니다.
Camera에서 한방향으로 광선을 쏘는거죠.
Camera 클래스에는 2가지 기능이 있습니다.
ScreenPointToRay |
픽셀 좌표로 제공됩니다. 왼쪽아래(0 , 0), 오른쪽위(pixelWidth, pixelHeight) |
ViewportPointToRay |
0~1범위 내에서 정규화 된 좌표입니다. 왼쪽아래(0 , 0) 오른쪽위(1 , 1) |
Ray로 뭘 할 수 있죠?
카메라에서 광선을 뙇 쏴서
어떤 물건을 바라보고 있는지, 유저가 클릭한게 뭔지를 알 수 있습니다.
Ray로 광선을 쏘고, Ray를 따라가는 RayCasting으로 알아낼 수 있습니다.
레이 캐스팅 (RayCasting)?
Raycast는 '가상의 레이저빔!!'입니다.
해당 Ray를 따라서 충돌체(Collider)에 부딪힐 때까지 전송을 합니다.
부딪힌 오브젝트에 대한 정보와 부딪힌 지점이 반환됩니다.
글만봐서는 이해가 잘 안갈수도 있지만 예제코드를 보시면 이해가 가실거에요.
마우스 위치에 있는 오브젝트 알아 내기 코드
private RaycastHit hit = new RaycastHit(); private Ray ray; void Update() { ray = Camera.main.ScreenPointToRay(Input.mousePosition); if(Physics.Raycast(ray, out hit) { Transform objectHit = hit.transform; } }
광선이 어딜 쏘는지 보고 싶어요!
아래 코드를 적용하면 카메라의 광선을 Scene View에서 확인 가능합니다.
그냥 광선은 빨간색으로 표현하고, 어떠한 물체에 부딪히면 초록색 광선을 쏘도록 했습니다.
Keystore파일을 이용하여 커맨드창에서 APK 서명하기 (0) | 2014.12.09 |
---|---|
[Unity3D] Google Play Store APK 릴리즈 모드 (0) | 2014.07.05 |
[Unity3D] 최적화 된 캐릭터 모델링 (0) | 2014.06.23 |
[Unity3D] 드로우 콜(Draw Call)? (0) | 2014.06.21 |
Recent Comments