var forward = 전방벡터;
forward.y = 0;
forward = forward.normalized;
// Right vector relative to the camera
// Always orthogonal to the forward vector
var right = Vector3(forward.z, 0, -forward.x);
----------------------------------------------
위 코드는 unity3d의 기본 패키지인 ThirdPersonController.js의 코드이다.
전방벡터를 정규화하고 Vector3(forward.z, 0, -forward.x); 와 같이
전방벡터의 z값, x값을 바꿔 넣어주면 우향벡터가 된다.
여기서 -x로 대입해 주는 이유는 왼손 좌표계이기 때문이다.
유니티에서는 오브젝트의 z축 방향이 전방벡터와 같다. 그리고 유니티의 좌표계는 왼손 좌표계이기 때문에,
z축에 [x>=0] 인 정수를 + 해주면 앞으로 이동하게 되지만, 오른손 좌표계에서는 -를 해줘야 한다.
(화면에서 오브젝트가 앞으로 이동한다고 생각해 보면 쉽게 이해할 수 있다.)
*혹은 벡터의 외적을 해도 된다..!
우향벡터 사용법. 상대를 인식할 때 상대 쪽으로 회전하는 알고리즘에서 사용해도 되고,
조이스틱으로 이동한다면 조이스틱을 좌우로 얼마나 이동했는지, 상하로 얼마나 움직였는지를 체크하여
Vector3 targetDirection = h * right + v * forward;
처럼 해 주면 최종적으로 이동하려는 방향을 구할 수 있다.
'게임 > Unity3D' 카테고리의 다른 글
[Unity3D] 프리팹 패키지 사이트 (0) | 2012.11.12 |
---|---|
[Unity3D][EZ GUI] UIButton Event 처리 방식 (0) | 2012.11.05 |
[Unity3D] EZ-GUI (0) | 2012.11.05 |
[링크] 유니티 문서 (0) | 2012.11.01 |
[Unity3D][Shader] 텍스쳐와 Alpha값에 대한 고찰 (1) | 2012.11.01 |
[Unity3D][스크랩] 외부 SVN이나 자체 SVN에서의 세팅법 (0) | 2012.10.31 |
[Unity3D] Mathf.lerp() Function 설명 (0) | 2012.10.31 |
[스크랩] InputManager 설정 (0) | 2012.10.29 |
[Unity3D] 포물선 이동 (1) | 2012.09.27 |
[Unity3D] Script 실행 순서 (0) | 2012.09.27 |