カメラを追従させている中で、シーンが遷移した場合でも、追従をやめない仕組みをつくってみましょう。
MainCameraがSphereを追いかけていきますが、シーンが切り替わっても、引き続き追尾を続けています。
関連記事:
移動先のシーンで座標を指定する
オブジェクトに触れたとき別シーンへ移動
別シーンへ遷移するボタンを設置する
SerializedObject target has been destroyed.エラーの対処法
シーンを遷移しても同じBGMが鳴り続ける
プレーヤーについていくカメラ
Sphereを動かす
シーンの名前をScene1に変更し、再ロードをクリックします。
もう一つシーンを新規作成し、名前をScene2とします。
平面とSphereを作成し、色をつけます。
Sphereにリジッドボディを追加します。
Cubeを作成し、前方へ配置します。
SphereMove.csを作成し、Sphereに追加します。
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 |
using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.SceneManagement; public class SphereMove : MonoBehaviour { void Start() { DontDestroyOnLoad(gameObject); } void Update() { float dx = Input.GetAxis("Horizontal") * Time.deltaTime * 3.0f; float dz = Input.GetAxis("Vertical") * Time.deltaTime * 3.0f; transform.position = new Vector3 ( transform.position.x + dx, transform.position.y, transform.position.z + dz ); } void OnCollisionEnter(Collision collision) { if(collision.gameObject.name == "Cube") { SceneManager.LoadScene("Scene2"); this.transform.position = new Vector3(0,0,-3); } } } |
カメラを追従させる
続いて、MainCameraが追従する仕組みをつくります。
CameraMove.csを作成し、MainCameraに追加します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
using System.Collections; using System.Collections.Generic; using UnityEngine; public class CameraMove : MonoBehaviour { public GameObject target; private Vector3 distance; void Start() { distance = transform.position - target.transform.position; DontDestroyOnLoad(gameObject); } void LateUpdate() { transform.position = target.transform.position + distance; } } |
ターゲットのフィールドに、Sphereを入れます。
プレイして動かしてみると、Sphereの移動に合わせて、カメラが動きます。
またプログラムの中には、シーンが遷移しても消されないように、DontDestroyOnLoad(gameObject); を入れています。
ここまで、一旦Scene1を保存します。
続いて、ビルド設定でScene1を追加します。
ファイル > ビルド設定
シーンを追加し、このウィンドウを閉じます。
遷移先のシーン
続いて、遷移先のScene2をダブルクリックして開きます。
平面を作成します。
MainCameraのチェックを外し、非表示にします。
Scene2のライティング設定を行います。
ウィンドウ > レンダリング > ラインティング設定
ライティングの生成をクリックしましょう。
Scene2を保存します。
続いて、ビルド設定でScene2を追加します。
ファイル > ビルド設定
シーンを追加し、このウィンドウを閉じます。
シーン移動した後もカメラが追いかける
Scene1をダブルクリックして開きます。
ゲームプレイして、動きを確認しましょう。
Cubeにぶつかれば、シーン移動。
移動先のシーンでも、元のカメラが継続して、追いかけていきます。
関連記事:
移動先のシーンで座標を指定する
オブジェクトに触れたとき別シーンへ移動
別シーンへ遷移するボタンを設置する
SerializedObject target has been destroyed.エラーの対処法
シーンを遷移しても同じBGMが鳴り続ける
プレーヤーについていくカメラ