画面位置に対応するレイを取得してカメラをそれに沿って移動させると便利な場合があります。例えば、ユーザーがオブジェクトをマウスで選択して、同じ画面位置をマウスで “維持” しながらズームインしたい場合があるかもしれません (例えば、戦略マップなどで便利かもしれません)。これを行うためのコードは比較的簡略です。
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);
}
}
}