• 카테고리

    질문 & 답변
  • 세부 분야

    게임 프로그래밍

  • 해결 여부

    미해결

Rotate와 rotation의 속도차이의 원인에 대한 질문입니다.

21.08.05 17:55 작성 조회수 393

0

_fSpeed = 10.0f; 

_fYAngle += 10*_fSpeed*Time.deltaTime;

        //+- 상대 회전값

        transform.Rotate(new Vector3(0.0f, _fYAngle, 0.0f)); //특정 축을 기준으로 회전을 시키고 싶으면 이걸

        transform.rotation = Quaternion.Euler(0.0f, _fYAngle, 0.0f); //물체의 절대적인 값

실습 도중 Rotate와 rotation에서 같은 변수를 줬는데 유니티를 실행시켜보니 회전속도에서 차이를 보이더군요. 

그 이유가 뭘까 생각을 해봤는데 차이점을 찾아봤습니다.

1. Rotate는 따로 지정을 안 해주면 로컬, rotation은 월드

2.Rotate는 벡터값으로, rotation은 쿼터니엄으로 값지정

생각해봤을 때 1번 이유보다는 2번 이유때문에 차이를 보이는 것 같은데 Rotate는 바로 오일러 벡터값을 주고 rotate는 오일러 벡터값을 지정해주면 그걸 쿼터니엄으로 변환해서 준다로 생각하는데 여기서 발생하는 차이일까요?

오일러 값으로 줄 경우는 180도 이상의 각도도 인지되기 때문에 빠른 속도로 돌지만 쿼터니엄은 180도 이상은 표현 못하니 해당 회전값을 180도로 나눈 나머지 값 만큼으로만 인지를 해서 속도의 차이를 보인다고 판단했습니다. 

제 결론이 맞는 걸까요?

--

추가적으로 vs2019를 사용하며 f1키를 이용해 ms 공홈에서 함수를 확인하는 걸 애용 했는데 유니티의 경우는 공홈에 접속해서 함수를 검색하는 방식을 이용하고 있습니다. 

vs자체적으로 단축키를 통해 공홈에서 함수를 자동 탐색을 하는 방법이 있을까요?

답변 2

·

답변을 작성해보세요.

0

강동훈님의 프로필

강동훈

질문자

2021.08.05

답변 감사합니다.

0

http://www.devkorea.co.kr/bbs/board.php?bo_table=m03_qna&wr_id=83685

함수에 대한 의문이 생기면 무조건 구글에 가서 검색을 해보시면 됩니다.
유니티는 워낙 많은 사람들에 사용하기에 99% 답변이 있습니다.