(2)-3 카메라 회전 실험 eulerAngles

5997 단어 C# 입문Unity3D

eulerAngles를 사용하고 싶습니다.



eulerAngles를 사용해야하기 때문에 기록합니다.

참조를 살펴보기



・오일러각으로서의 각도
· x, y, z의 각도는 z축에 z도, x축에 x도, y축에 y도 순으로 회전합니다.
·이 변수는 읽거나 절대 값의 각도를 설정할 때만 사용하십시오.
・각도가 360도를 넘었을 때에는 실패하므로 증분하지 않도록 하십시오. 대신 Transform.Rotate를 사용하십시오.

이름 그대로 오일러로, Vector3형으로, z→x→y의 순서로 회전한다고 이해.
스크립트 참조

다른 사이트에서 사용법을 조사합시다.


transform.eulerAngles = new Vector3(45, 45, 0);

회전
흠흠.

각 XYZ의 값 변경이 어떻게되는지 실험


    void Update()
    {
//ボタン押しながら実験したいのでAボタンを押したら、、、
        if (Input.GetKeyDown(KeyCode.A))
        {
            transform.eulerAngles = new Vector3(45, 45, 0);
//どうなるかの確認用
            Debug.Log(this.transform.eulerAngles);
        }
    }

현재 좌표는 (0,10,0)에서 (45,45,0)이어야 하기 때문에
화살표 방향으로 붉은 원이 갈 예상

A 버튼을 누르면 그런 느낌으로 회전하고 있습니다.

Debug.Log 결과


처음 (0,10,0)에서 (45,45,0)에 버튼 누르면 워프하는 느낌.

버튼을 누르면 누른 만큼 회전하고 싶다



⚡ 혹시 1로 하면 좋지 않아? 작전transform.eulerAngles = new Vector3(1, 0, 0);언제까지 지나도, (1, 0, 0)이 되기 때문에 다르다(-_-;)
transform.eulerAngles  + = new Vector3(0, 0, 1);+를 넣으면 된다

⚡갱신작전
뭔가 이동할 때 Vectoe3를 업데이트하는 글을 본 것 같다. .Vector3 rightArrow = new Vector3(0.1f, 0f, 0f);this.transform.eulerAngles(rightArrow);eulerAngles는 메소드처럼 사용할 수없는 오류 (-_-;)

⚡ 만책 다해 Googl 선생님에게 듣기
eulerAngles는 지정된 좌표로 회전합니다. 과연-!
순식간에 각도 바꿀 때 전용이라는 것.
[Unity] transform.eulerAngles 정보

⚡라도 Vector3.forward라든지 실현할 수 있을지도transform.eulerAngles += Vector3.forward;
    void Update()
    {
        if (Input.GetKeyDown(KeyCode.A))
        {
            transform.eulerAngles += Vector3.forward;
            Debug.Log(this.transform.eulerAngles);            
        }
    }

이외에 할 수 있어 놀랍다.

eulerAngles 및 localEulerAngles



eulerAngles는 세계 좌표로 localEulerAngles는 부모로부터의 각도.
Debug.Log에서는 eulerAngles도 localEulerAngles도 같은 값을 돌려주고 있었다.

eulerAngles 쪽만 공식적으로 360도를 넘었을 때에는 실패한다고 써 있었기 때문에
어떻게 실패하는지 보고 싶어지고 360회 연타하지만 실패는 보이지 않았다. 죄송합니다. .


요약



・순간에 각도 바꿀 때 전용으로 사용해야 한다
・누른 분만도 Vector3.forward라든지 가능하지만 Rotate를 사용한다.

참고로 한 사이트



스크립트 참조
Unity 회전 주변 정보
회전
[Unity] transform.eulerAngles 정보

좋은 웹페이지 즐겨찾기