実家に帰るとうどんが美味しい(うどん県民)
- 戻れるチェックポイントを作れるようにする
3月20日
戻れるチェックポイントを作れるようにする
道を分岐させて、行き止まりなど作ったりすれば面白いんじゃないか。でもそうしたら戻れるようにするべきなのでは…ということでチェックポイントを通っても消失せず、来た道を戻れるようにしたいと思います。
CheckPointController.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 |
using UnityEngine; using System.Collections; public class CheckPointController : MonoBehaviour { public GameObject Level; public Vector3 NextLevelTransform; public bool backable = true; //戻れるかどうか public Vector3 previousLevelTransform; //戻る場合のレベルの移動位置 public Vector3 previousPlayerPositionWhenBackable; //戻れる場合の、進んだ先の棒の位置 public Vector3 nextPlayerPositionWhenBackable; //戻った場合の棒の位置 GameObject theBar; void Start () { theBar = GameObject.Find ("The Bar"); //棒への参照を取得しておく } bool checkIsMovedPoint; //進んだ先にいるかいないかを記録 void TouchCheckPoint () { //一方通行の場合 if (backable == false) { Level.transform.position = NextLevelTransform; // Destroy (gameObject); } else { //行き来できる場合 if (checkIsMovedPoint == false) { //前→後ろ Level.transform.position = NextLevelTransform; theBar.transform.localPosition = nextPlayerPositionWhenBackable; checkIsMovedPoint = true; } else { //後ろ→前 Level.transform.position = previousLevelTransform; theBar.transform.localPosition = previousPlayerPositionWhenBackable; checkIsMovedPoint = false; } } } } |
チェックポイントに触れた際にこれを実行できるよう、BarController.cs を1行変更します。
1 |
Destroy(collision.gameObject); |
だった部分(チェックポイントに触れた際の処理)を
1 |
collision.gameObject.SendMessage ("TouchCheckPoint"); |
に変更します。チェックポイントに触れた際、CheckPointController.cs の TouchCheckPoint() が実行されます。
以上でチェックポイントで行き来ができるようになりました。
ていうかこれ自動化できないのか…全部手で指定するのは骨が折れすぎる。こういう時にエディタ拡張に手を出すのかなと思ったり。
次回はこちら(製作中)
“Avoid The Walls 開発日記 6” への1件のフィードバック