現在、私は 2 つのカメラを持っています。メイン カメラは銃を通常の状態で表示し、2 つ目のカメラは銃に取り付けられ (銃はメイン カメラの子です)、トグルすると銃のスコープを通して見え、増加します。視野。
理解を深めるためのビジュアルを次に示します。
2 つ目のカメラをオンにして、メインのカメラをオフにすれば、うまく機能しますが、あまり理想的ではありません。シーンごとに 1 つのカメラのみを使用する必要があります。
そこで、カメラの位置を Lerp してスコープを覗き込み、手動で視野を狭めたいと思います。そこで、次のスクリプトを作成しました。
[RequireComponent(typeof(Camera))]
public class Zoom : MonoBehaviour {
private Transform CameraTransform = null;
public Transform ZoomedTransform;
private bool zoomed = false;
void Start () {
CameraTransform = Camera.main.transform;
}
// Update is called once per frame
void Update () {
if (Input.GetKey (KeyCode.LeftShift))
{
CameraTransform.position = Vector3.Lerp (
CameraTransform.position,
CameraTransform.position + ZoomedTransform.position,
5f * Time.deltaTime
);
CameraTransform.Rotate(ZoomedTransform.rotation.eulerAngles);
}
}
}
これの問題は、それが機能しないことです。ズーム ボタンを押すと、カメラが光の速さでシーンを高速で移動し、何が起こっているのかを正確に把握するのは困難です。
私が間違っていることについて誰かが私に洞察を与えることができますか? 親子関係の関係かと思いますが、静的な値を使ってみてもなかなか正解にたどり着けません。
階層: