Я хочу переместить символ вокруг сферы в позиции щелчка, у меня есть этот код для щелчка в точке, и персонаж перемещается в эту позицию, движение в порядке, но метод lookAt не работает хорошо.
Vector3 targetPosition;
Vector3 lookAtTarget;
Quaternion playerRot;
public float rotSpeed = 20;
public float speed = 10;
public bool move = false;
void Update()
{
if (Input.GetMouseButtonDown(0))
{
SetTargetPosition();
}
if (move)
{
Move();
}
}
void SetTargetPosition()
{
Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);
RaycastHit hit;
if(Physics.Raycast(ray, out hit, 1000))
{
targetPosition = hit.point;
//this.transform.LookAt(targetPosition);
lookAtTarget = new Vector3(targetPosition.x - transform.position.x, targetPosition.y, targetPosition.z - transform.position.z);
playerRot = Quaternion.LookRotation(lookAtTarget);
move = true;
}
}
void Move()
{
transform.rotation = Quaternion.Slerp(transform.rotation, playerRot, rotSpeed * Time.deltaTime);
transform.position = Vector3.MoveTowards(transform.position, targetPosition, speed * Time.deltaTime);
if(transform.position == targetPosition)
{
move = false;
}
}