(2)-2 카메라 회전 실험 Quaternion.AngleAxis

5423 단어 C# 입문Unity3D

1. transform.Rotate()의 계속



이전 기사는, 취득했지만 Quaternion 전혀 사용하고 있지 않은 것을 깨달았습니다.
Quaternion은 축으로 돌 정도의 지식 밖에 가지고 있지 않기 때문에 실험해 보고 싶었습니다.

그렇다면 어떤 것을 실현하고 싶습니까?



①Quaternion을 선언·취득하고 싶다



→ 현재 각도를 얻으려면,Quaternion myQuaternion = this.transform.rotation;👆 왼쪽, ,, 변수 이름 (고집)은 myQuaternion에.
👆 오른쪽, , , 어태치하고 있는 객체의 회전 정보(transform.rotation)를 넣어라.

② Quaternion을 업데이트하고 싶습니다.



・마우스를 가미해 갱신하고 싶습니다.



오른쪽으로 움직이는 자신의 최대의 무기 GetAxis를 사용하지 않고. .

· 마우스를 가미하는 것은


if (Input.GetKey(KeyCode.W))👆 키보드의 W 버튼을 누르면 구현됩니다.

・AngleAxis 함수의 등장


Quaternion rot = Quaternion.AngleAxis(2, Vector3.right);업데이 트에있는 "업데이트 요소"같은 것으로 이해했습니다.
👆 왼쪽, ,, 변수 이름 rot에.
👆 우측, , , 초당 2도 d에서, x축을 축으로 하여 회전시킨다
여기서 의문이 나왔다. x축을 축으로 하여 Vector3(1,0,0)을 걸는 것은?
아니 이거 오일러 뿔이야. . . 코유토코 덮고 진행한다. . .

· 마지막으로 합성


this.transform.rotation = myQuaternion * rot;👆 왼쪽,,,, 자신에게
👆우측, ,, 자신에게 「갱신 요소」의 rot 변수를 걸어 대입해 줘.

,,, 감동,,,






움직일 수 있었습니다. 조금. .

· 그리고 마지막으로


Quaternion rot = Quaternion.AngleAxis(2, Vector3.right);의 말미의 right를 바꾸면 다른 방향으로 회전해 줍니다.
right, left, up, down은 사용하는 느낌이 있지만
그 외는 넣어 보면 거동에 놀라운 마무리에. . .

Vector3.zero; → Vector3(0,0,0) 부동
Vector3.right; → Vector3(1,0,0) 상회전
Vector3.left; → Vector3(-1,0,0) 하회전
Vector3.up; → Vector3(0,1,0) 오른쪽 회전
Vector3.down; → Vector3(0,-1,0) 좌회전
Vector3.forward; → Vector3(0,0,1) 우회전, 지구가
Vector3.back; → Vector3(0,0,-1) 좌회전, 지구가
Vector3.one; → Vector3(1,1,1)――, 뭐라고 할 수 없는 오른쪽 회전,

    void Update()
    {
        if (Input.GetKey(KeyCode.W))
        {
//Quaternionで回転するとこ
            Quaternion myQuaternion = this.transform.rotation;
            Quaternion rot = Quaternion.AngleAxis(2, Vector3.zero);
            this.transform.rotation = myQuaternion * rot;

//オイラー角をDebug.Logで。 
            float quat_x = myQuaternion.eulerAngles.x;
            float quat_y = myQuaternion.eulerAngles.y;
            float quat_z = myQuaternion.eulerAngles.z;
            Debug.Log("X=" + quat_x);
            Debug.Log("Y=" + quat_y);
            Debug.Log("Z=" + quat_z);
        }
    }
}

참고로 한 사이트입니다 : 감동에 감사드립니다.



【Unity】Quaternion으로 오브젝트를 회전시키는 방법
【Unity】Vector3의 사용법과 객체의 이동이나 회전을 표현하는 방법

좋은 웹페이지 즐겨찾기