ターゲットとなるオブジェクトに触れると、最初からスタートになる仕組みをつくりましょう。
Sphereを動かしてCubeにぶつけるとシーンが再ロードされて、はじめの位置に戻ります。
関連記事:
移動先のシーンで座標を指定する
オブジェクトに触れたとき別シーンへ移動
シーンを遷移してもカメラ追従を保持する
着地すれば前進移動する
触れたオブジェクトの位置を取得
触れると他の位置へワープする
キーを押すと特定の位置にワープ
触れると元の位置からスタート
SphereとCubeを作成して距離をとり、マテリアルを追加しました。
少しだけカメラの高さを変え、見下ろした状態にします。
Sphereにリジッドボディを追加します。
SphereMove.csを作成し、Sphereに追加します。
SphereMove.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 |
using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.SceneManagement; public class SphereMove : MonoBehaviour { void Update() { 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 collision) { if (collision.gameObject.name == "Cube") { SceneManager.LoadScene(SceneManager.GetActiveScene().name); } } } |
シーンをロードするために、using UnityEngine.SceneManagement; を忘れずに記述しておきましょう。
ゲームプレイしてCubeにぶつかれば、シーンが再ロードされてスタート位置に戻ります。
もし、ロードした際に暗くなった場合、ライティングの生成を行いましょう。
ウィンドウ > レンダリング > ライティング設定
ライティング生成をクリックします。
関連記事:
移動先のシーンで座標を指定する
オブジェクトに触れたとき別シーンへ移動
シーンを遷移してもカメラ追従を保持する
着地すれば前進移動する
触れたオブジェクトの位置を取得
触れると他の位置へワープする
キーを押すと特定の位置にワープ
もう一度プレイして再ロードすると、明るいままのビューになっています。