inflearn logo
강의

Khóa học

Chia sẻ kiến thức

[Phát triển game MMORPG với C# và Unity] Part3: Unity Engine

Máy ảnh số 3

Quaternion.Slerp 적용하면 유니티 짱이 20~30도 쓰러져요.

1078

prokimssam

13 câu hỏi đã được viết

0

화면 클릭해서 이동시

transform.LookAt(_destPos);

위 코드 대신

부드럽게 회전하기 -- 아래 코드로 하면 마지막 멈출때 유니티 짱이 쓰러짐. ㅜㅜ
transform.rotation = Quaternion.Slerp(transform.rotation, Quaternion.LookRotation(dir), 5 * Time.deltaTime); //t는 회전 속도

 

trasform.LookAt(_destPos)일때는 쓰러지지 않습니다.

1.png

C# unity

Câu trả lời 2

0

kimchanho87

콜라이더가 캡슐이라서 발생하는 문제라고 생각합니다.바닥과 충돌되면서 캐릭터가 기울더군요.

0

communityai8509

안녕하세요, 인프런 AI 인턴이에요.

Quaternion.Slerp는 주어진 두 개의 회전 사이를 보간하는 함수로, 보간되는 비율을 지정하여 부드러운 회전을 구현할 수 있습니다. 하지만 코드를 보면 마지막에 유니티가 쓰러지는 현상이 발생한다고 하셨는데요.

이러한 문제가 발생하는 이유는 Quaternion.Slerp 함수의 파라미터인 t(보간 비율) 값을 제대로 설정하지 않았거나, 회전이 더 이상 필요하지 않을 때에도 회전이 계속되기 때문일 수 있습니다.

다만, 제가 본 게시글에는 이러한 값을 설정하는 부분이 포함되어 있지 않아서 정확한 원인을 파악하기 어렵습니다. Quaternion.Slerp를 올바르게 사용하려면 다음과 같이 해보세요.

transform.rotation = Quaternion.Slerp(transform.rotation, Quaternion.LookRotation(dir), 회전 속도 * Time.deltaTime);

여기서 회전 속도는 t 값이 되는데, 0에서 1 사이의 값으로 설정해야 합니다. t 값이 작을수록 느린 속도로 회전하게 되고, 1에 가까울수록 빠른 속도로 회전하게 됩니다. 회전이 완료되었다면 회전을 멈출 수 있도록 조건문을 추가하여 제어하세요.

또한, 유니티의 Quaternion.Slerp 함수는 회전 중심을 항상 필요로 합니다. transform.position 등의 값으로 회전 중심을 지정할 수 있는지 확인해보세요. 회전 중심을 제대로 지정하지 않았다면 예기치 않은 움직임이 발생할 수 있습니다.

문제가 해결되지 않거나 추가적인 도움이 필요하신 경우에는 더 자세한 코드나 상황에 대한 정보를 제공해주시면, 더욱 정확한 답변을 드릴 수 있을 것입니다. 질문이나 궁금한 점이 있으시면 언제든지 물어보세요.

0

prokimssam

transform.rotation = Quaternion.Slerp(transform.rotation, Quaternion.LookRotation(dir), 10 * Time.deltaTime);

t 값을 0~1사이 값을 주었습니다.

움직이다가 멈추면
Transform.Rotation.x값이 계속 마이너스 값이 나오면서 넘어지는 모습이 나옵니다.

image

transform.LookAt(_destPos);을 하는 경우는
Transform.Rotation.x값이 -1 이하의 값에서 움직여서 넘어지는 느낌은 많이 나진 않네요.

 

Transform.Rotation.x값을 0으로 다시 고정할 수 없을까요?

0

prokimssam

다시 테스트 해보니 캐릭터와 먼 곳을 클릭하지 않고, 캐릭터를 클릭해서 멈추는 경우
유니티짱이 쓰러집니다.

0

prokimssam

너무 가까울때 클릭한 경우는 회전 하지 말라고 하니까 쓰러지는 문제가 해결이 되네요.

image

 

UI 기능 관련 질문이 있습니다!

0

25

2

픽셀 좌표 스크린 좌표

0

27

0

전체적으로 코드 읽는게 굉장히 오래 걸리네요...

0

68

2

카메라 #2 수업 캐릭터 쓰러짐 해결

0

80

1

플레이어 움직임이 끝날때, 기울어짐 현상

0

81

1

Input 적용과 관련하여 질문 있습니다.

0

72

1

디버그 불가.. Unity에 연결 불가

0

77

1

달리기 애니메이션 에러

0

85

2

오랜만에 게임을 만들다가 사운드 관련해서 뭔가 궁금한게 있어서 봤습니다

0

63

1

GetKey 오류

0

109

2

에셋을 어디에 올려두신지 알 수 있나요?

0

104

1

재귀호출? 오류나는데 왜 이래요 ?

0

167

6

Animation blending 파라미터 계산

0

65

1

newPos와 to지점이 겹쳐져야 하는거 아닌가요?

0

94

3

오브젝트 복제하니까 자꾸 이런게 뜨면서 꺼집니다

0

85

2

질문있습니다

0

142

2

아 이거 소스코드 같은거 없나요?

0

140

3

질문 드립니다. string.IsNullOrEmpty(name)

0

85

2

@Managers 가 씬에 배치되어 있어도 문제가 되지 않나요?

0

133

2

유니티6 NavMesh 안되는분들

1

174

1

Unity6 Unity-Chan Material 마젠타 문제 해결법

7

524

1

GetComponent<Poolable> 질문드립니다.

0

99

2

UI 불러오지 못함

0

116

2

UI 자동화 #1 - Util.cs의 FindChild함수에서 component.name에 컴포넌트 이름이 뜹니다.

0

152

2