@ikeky

Почему Camera.ScreenPointToRay работает криво и не точно?

видео пример
я пробую делать наведение игрока на курсор, но он работает не точно, вот код:
var playerPlane = new Plane(Vector3.up, transform.position);
    
        // Generate a ray from the cursor position
        var ray = Camera.main.ScreenPointToRay (Input.mousePosition);
    
        // Determine the point where the cursor ray intersects the plane.
        // This will be the point that the object must look towards to be looking at the mouse.
        // Raycasting to a Plane object only gives us a distance, so we'll have to take the distance,
        //   then find the point along that ray that meets that distance.  This will be the point
        //   to look at.
        float hitdist = 0.0f;
        // If the ray is parallel to the plane, Raycast will return false.
        if (playerPlane.Raycast (ray, out hitdist)) {
            // Get the point along the ray that hits the calculated distance.
            var targetPoint = ray.GetPoint(hitdist);
    
            // Determine the target rotation.  This is the rotation if the transform looks at the target point.
            var targetRotation = Quaternion.LookRotation(targetPoint - transform.position);
    
            // Smoothly rotate towards the target point.
            transform.rotation = Quaternion.Slerp(transform.rotation, targetRotation, speed * Time.deltaTime);

если что вот иерархия игрока
Игрок и его скрипты:
- mesh
- тот самый mesh, который меняет положение в зависимости от поворота его родителя
  • Вопрос задан
  • 310 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы