Unity++blog.

UnityやC#とかについて学習したことを書いてます

シーンを変えずにステージを変えるスクリプト

シーンを変えずにステージを変えるスクリプトです。

イメージはこんな感じで、キャラクターがゴールしたら次のPositionへ移動してゲームを再開するというものです。

 

 

今回の場合ではスタート場所とゴール場所をそれぞれ3つ用意しました。(空オブジェクトでもcubeでもなんでもいいです。)

*下ではさらにまとめるために空オブジェクトの子要素にしてます。

f:id:nabesi777:20181208181226p:plain

 

これをシーン内に配置します。

 

次にスクリプトを作成します。名前はStageChangerとしました。アタッチする場所はどこでも大丈夫です。*あとから気づいたんですが、リジットボディーは使っていないので書く必要はないです。

 

 

 インスペクターへそれぞれ格納していきます。

f:id:nabesi777:20181208190635p:plain

 

 次にキャラクターのスクリプトを変更します。

今回はゴールオブジェクトへ当たり判定があったときにステージを変更しますのでOnCollisionEnterメソッドを使用します。ゴールオブジェクトのタグは「Goal」と変更しています。

f:id:nabesi777:20181208192714p:plain

 

 

 ざっくりというとキャラクターがゴールオブジェクトへ当たった時にステージ番号を+1してその番号をStageChangerが取得してステージ番号に合わせて処理していくという内容としています。

 

 これで機能すると思いますが、スクリプトから抜粋してるので動かなかったらごめんなさい。