Перемещение камеры вдоль луча
Иногда полезно получить луч, соответствующий позиции экрана, а затем переместить камеру вдоль этого луча. Например, вы можете позволить пользователю выбрать объект мышей, а затем увеличить его, сохраняя его «прикрепленным» к той же позиции экрана под мышью (это может быть полезно, когда камера смотрит на тактическую карту, например). Код для этого достаточно прост:
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);
}
}
}