アドベンチャーゲーム5

プログラミング編

最後にゲームをインタラクティブにするプレファブをゲームに追加しよう

LEVEL

開発環境

UNITY

 プレファブ(Prefab)をプログラムからシーンに

いままでたくさんの準備されたプレファブをつかってゲームの基礎をつくってきました。今回はプレファブをプログラムから出現させてみましょう。

1.自分のスクリプト(プログラム)をいれておくフォルダをつくろう

Projectからしたのように選び Folder をクリックしよう

 

2.自分のスクリプト(プログラム)をつくります。

 

●コーディングしよう

1.スクリプトファイルをダブルクリックしてファイルをひらきます。

2.以下のコードを記述しよう

 public GameObject ChomperObj;//使うプレファブをパブリックで定義-インスペクターで指定できます。

  void Start()
    {
        // プレハブを元にオブジェクトを生成する(インスタンス化)
        GameObject instance = (GameObject)Instantiate(ChomperObj,

new Vector3(0.0f, 0.0f, 0.0f),Quaternion.identity);
    }

つぎに、作ったスクリプトファイルをなにか自分でつくったオブジェクトにアタッチします。

※自分で作ったものならなんでもいいです。

あらかじめあるプレファブには入れないでおこう。バグの原因になることがあります。

シーンに表示させたいプレファブを指定します。

例は敵:チャンパーを指定しています。

指定できると、プログラムのChomperObjにプレファブの名前が表示されます。

2

 InfoZoneと連携する

キャラクターが入ったときに他のクラスメソッドを読んでくれる「InfoZon」プレファブからよんでみる。

【できることの例】

・ある場所にいくと敵が現れる。

・ある場所にいくとオブジェクトで閉じ込められる

など

1.InfoZoneをおこう。

InfoZoneはInfoZoneのコライダーにキャラクターが入ると、指定したスクリプトを呼ぶことができる。

場所:Project > Assets > 3DGame Kit Light > Prefabs > Interactables > InfoZone

 

●InfoZoneからよばれるメソッドをつくろう

1.先程つくったスクリプトファイルにInfoZoneに呼ばれるためのメソッドを作ろう。

メソッドをpublic型にすることで他のプログラムからよびこむことができます。

↓を先程のスクリプトに追加

public void ExitPrefab()
{
GameObject instance = (GameObject)Instantiate(ChomperObj, new Vector3(-1.0f0.0f, –10.0f), Quaternion.identity);
}

Vector3(….)のところでプレファブが出現する場所を指定しています。Vector3(X座標の数, Y座標の数, Z座標の数)

全体は↓のようになります。

1.InfoZoneを選択します。

2.Inspector画面で、スクリプトをアタッチしたオブジェクトをInteract On Triggerの On Enter()に指定します。

3.つぎにメソッドを指定します。

まずスクリプト名「PrefabTest」を選択し、次にメソッド名「ExitPrefab()」を選択します。

下のようになっていれば大丈夫です。

 4.ゲームを起動してテストしてみましょう。