-
카테고리
-
세부 분야
게임 프로그래밍
-
해결 여부
미해결
Rotate, rotation 메서드 관련 질문
22.07.10 15:54 작성 조회수 120
0
float _yAngle = 0.0f;
...
void Update()
{
_yAngle += Time.deltaTime * 100.0f;
1. transform.eulerAngles = new Vector3(0.0f, _yAngle, 0.0f);
2. transform.Rotate(new Vector3(0.0f, Time.deltaTime * 100.0f, 0.0f));
3. transform.rotation = Quaternion.Euler(new Vector3(0.0f, _yAngle, 0.0f));
}
여기서 1번 eulerAngles하고 3번 transform.rotation에 'Time.deltaTime * 100.0f' 값을 넣으면 회전하지 않고 '_yAngle'를 넣어야지 회전하게 되었습니다. 근데 2번 transform.Rotate에는 '_yAngle' 변수를 넣으면 너무 빠르게 회전하고 'Time.deltaTime * 100.0f' 값을 넣으니 정상적으로 회전합니다.
어떤 메서드에서 'Time.deltaTime * 100.0f'를 넣어야지 정상적으로 회전하고 '_yAngle'를 넣어야지 제대로 회전하게 되는지 잘 이해가 되지 않습니다.
답변을 작성해보세요.
1
Rookiss
지식공유자2022.07.10
우선 이런 고민이 생기면, 각 기능의 유니티 공식 문서를 읽어보시기 바랍니다.
현재 각도(yAngle)가 있고, 경과한 프레임마다
회전한 각도 (deltaTime * rotateSpeed)가 있는 셈인데요.
유심히 보면 yAngle += deltaTime*rotatSpeed;로 계속 회전시켜주고 있습니다.
따라서 [희망하는 회전각]을 넣어야 한다면 전자를,
[얼마만큼 이동할지]를 넣어야 하는 경우 후자를 선택하면 됩니다.
답변 1