今回やること
- ゴールの作成
- ゲームのビルド
1.ゴールの作成
今回は迷路のゴールの作成、およびゲームのビルドを行います。
まずはクリア画面のUIを作ります。インスペクタで右クリックUI(Canvas)→CanvasでCanvasを作成してください。
Canvasが作成されました。Canvas以下にドラッグ&ドロップとかで配置されたオブジェクトはカメラ関係なく以下のようにゲーム画面に表示されます。
ここで、インスペクタで右クリックUI(Canvas)→Text - TextMeshProを作成してください。Import TMP Essentialが出てきたらクリックしておいてください。
追加されたらTextのインスペクタから、Transformから位置を(0,0,0)に変更して画面中央に置いたのち、何かしらのクリア時の文字とか文字色とか文字サイズとかを設定しておきましょう。何でもいいです。
設定が終わったら、インスペクタ左上のチェックを外してオブジェクトを非有効化しておきます。
では、ゴール時にオブジェクトを有効化するプログラムを作りましょう。
以下のようなプログラムを書いてください。
using UnityEngine;
public class Goal : MonoBehaviour
{
public GameObject goalObj;
private void OnCollisionEnter2D(Collision2D collision)
{
goalObj.SetActive(true);
}
}
このSetActive()は、指定したオブジェクトを有効化/非有効化するプログラムです。trueを指定すると有効化できます。
SetActiveが入っているOnColliderEnter2Dは、Unity独自の関数です。オブジェクトにCollider(当たり判定)とRigidbody2Dがあるなら、Colliderに何かしらがぶつかったときに実行されます。
つまり、このプログラムを当たり判定のあるオブジェクトに導入してオブジェクトをゴールとすることで、ゴールにプレイヤーがぶつかったときにgoalObjが有効化されます。
では、新しくSquareを作成して、いつも通りBoxCollider2Dを入れましょう。
さらに、RigidBody2Dを入れて、Body TypeをKinematicに設定してください。
そしたら、オブジェクトの位置、大きさを以下のように設定してください。この位置はプレイヤーから見て迷路の対角線上の向かい側です。壁にぶつかってゴール判定とならないように、Scaleも小さくしてあります。
最後に、先ほど作成したプログラムを導入して、goalObjにTextを指定しましょう。
これでテストプレイすると、プレイヤーを操作してゴールにぶつかったときに文字が表示されるはずです。
2.ゲームのビルド
これでゲームが一通り完成したので、ビルド作業に移ります。
ビルドとは、作ったゲームをコンピューターで遊べるアプリの形として出力することです。
まずは左上のツールバーからFile→Build Profilesを開きましょう。ここで出てくるウィンドウにCreate Profileとかが映ってたらクリックしておいてください。
Scene ListからAdd Open Scenesをクリックしてください。
そしたら、BuildProfilesのWindowsをクリックして、そのままBuildを押してください。
保存する場所はどこでもいいですが、場所を決めたらそこにフォルダを新規作成して、その中に保存すると後が楽です。
保存が終わったら保存場所のフォルダからアプリファイルがあるか確認しておきましょう。これをダブルクリックするとプレイできます。
ゲームも一通り完成したので、これで今年のUnity講座は終わりです。お疲れさまでした~
