プレーヤーが他のオブジェクトに触れた時だけ、MainCameraをズームさせる仕組みを作ってみましょう。
Sphereに触れたタイミングで、カメラが接近し、Cubeを近くで撮影します。
関連記事:
キーを押すたびにカメラアングルを切り替え
MainCameraがオブジェクトを追従
カメラを旋回しながら自動追従させる
主観ビューで動かす
マインクラフトのようなプレーヤー操作
ターゲットに触れるとカメラを接近させる
Planeの上に、Cube、Sphereを配置します。
Cubeにリジッドボディを追加します。
Sphereコライダーのトリガーにするにチェックを入れます。
CubeMove.csを作成し、Cubeに追加します。
CubeMove.csを記述します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 |
using System.Collections; using System.Collections.Generic; using UnityEngine; public class CubeMove : MonoBehaviour { Camera cam; void Start() { cam = Camera.main; } void Update() { cam.transform.LookAt(this.transform.position); if (Input.GetKey(KeyCode.UpArrow)) { transform.Translate(0f, 0f, 0.1f); } if (Input.GetKey(KeyCode.DownArrow)) { transform.Translate(0f, 0f, -0.1f); } if (Input.GetKey(KeyCode.LeftArrow)) { transform.Translate(-0.1f, 0f, 0f); } if (Input.GetKey(KeyCode.RightArrow)) { transform.Translate(0.1f, 0f, 0f); } } void OnCollisionEnter(Collision other) { if (other.gameObject.name == "Sphere" ) { cam.transform.position = this.transform.position - new Vector3(0,0,5); } } void OnCollisionExit(Collision other) { if (other.gameObject.name == "Sphere" ) { cam.transform.position = this.transform.position - new Vector3(0,0,10); } } } |
ゲームプレイして、Cubeを動かします。
Sphereにぶつかればカメラーがズームアップし、離れると元の距離に戻ります。
関連記事:
キーを押すたびにカメラアングルを切り替え
MainCameraがオブジェクトを追従
カメラを旋回しながら自動追従させる
主観ビューで動かす
マインクラフトのようなプレーヤー操作