Unity 6.3
0 онлайн 46 гостей 3 в системе
Вход

Перемещение камеры вдоль луча

Иногда полезно получить луч, соответствующий позиции экрана, а затем переместить камеру вдоль этого луча. Например, вы можете позволить пользователю выбрать объект мышей, а затем увеличить его, сохраняя его «прикрепленным» к той же позиции экрана под мышью (это может быть полезно, когда камера смотрит на тактическую карту, например). Код для этого достаточно прост:

using UnityEngine;
using System.Collections;

public class ExampleScript : MonoBehaviour {
    public bool zooming;
    public float zoomSpeed;
    public Camera camera;

    void Update() {
        if (zooming) {
            Ray ray = camera.ScreenPointToRay(Input.mousePosition);
            float zoomDistance = zoomSpeed * Input.GetAxis("Vertical") * Time.deltaTime;
            camera.transform.Translate(ray.direction * zoomDistance, Space.World);
        }
    }
}