플레이어를 마지막으로 클릭 한 위치로 회전하려고합니다. 나는이 작업을 수행하기 위해 최선을 다했지만 지금은 회전을 즉시 변경하는 대신 스프라이트 대신 설정된 속도로 플레이어가 회전하는 것을보고 싶습니다. Ive는 온라인에서 찾은 여러 가지 방법을 시도했지만 그 중 어느 것도 나를 위해 일하지 않았습니다. 여기에 내가 무엇입니까Unity : Lerp/Slerp와 함께 Z 축을 중심으로 오브젝트 회전
void Update()
{
if (Input.GetMouseButtonDown (0))
{
Vector3 diff = Camera.main.ScreenToWorldPoint(Input.mousePosition) - transform.position;
diff.Normalize();
float rot_z = Mathf.Atan2(diff.y, diff.x) * Mathf.Rad2Deg;
transform.rotation= Quaternion.Euler(0f, 0f, rot_z - 90);
Instantiate(ProjectilePrefab, transform.position, transform.rotation);
}
}
위의 코드는 정상적으로 작동하지만 아무런 움직임도 보이지 않습니다. 나는 이것을하려고했지만 위치가 틀리며 회전도 즉각적입니다.
Vector3 diff = Camera.main.ScreenToWorldPoint(Input.mousePosition) - transform.position;
var newRotation = Quaternion.LookRotation(diff);
newRotation.y = 0.0f;
newRotation.x = 0.0f;
transform.rotation = Quaternion.Slerp(transform.rotation, newRotation, Time.deltaTime * 30);
아이디어가 있습니까?