2017-05-07 19 views
0

Unityにはまったく新しいですが、すぐに学びます。スクリプトが適用されたゲームオブジェクトのインスタンス化

私は、空のGameObjectであり、風船を生み出すスポーナを持っています。ウェイポイントに続いて移動スクリプトが適用されます。

私が抱えている問題は、公共の変数にウェイポイント(空のゲームオブジェクトも)をドラッグできず、バルーンがゲームの階層に最初に追加された場合にのみ行うことができますが、スクリプトが適用されているプレハブを作成していますが、これはまだゲームには入りたくありません。ゲームにプレハブを追加すると、ゲームオブジェクトにウェイポイントを設定できます。

アセットのプレハブにウェイポイントゲームオブジェクトを追加できるようにこれを修正するにはどうすればよいですか?

+0

こんにちは!あなたはUnity Q&Aページに向かうべきだと思います。 [This](http://answers.unity3d.com/questions/21233/setting-properties-when-instantiating.html)はあなたの質問に答えるべきです。基本的には、インスペクタで通常設定する属性を、GOをインスタンス化するコード内のどこにでもプログラムで設定する必要があります。 –

答えて

2

あなたが移動スクリプトでこのメソッド持つことができます。

public void SetWayPoints(Transform[] waypoints) 
{ 
    this.wayPoints = waypoints; 
} 

そして、あなただけのコンポーネントを取得し、道のポイントを設定し、あなたのプレハブをインスタンス化します。

GameObject baloon = Instantiate(baloonPrefab) as GameObject; 
var movementScript = baloon.GetComponent<Movement>(); 
if(movementScript != null) 
{ 
    movementScript.SetWayPoints(waypoints); 
} 

上記のコードは、その方法を説明するための単なる例に過ぎません。あなたのスクリプトは、あなたのウェイポイントの実装に応じて変わります。私は、ウェイポイントは移動スクリプト内の変換の配列であり、バルーンはそれを1つずつ順番に追跡すると仮定しました。また、spawnerクラスには、階層内のウェイポイントの参照があり、その配列をspawnerから渡すだけです。

これが役に立ちます。 問題がある場合はお知らせください。

+0

ああ、私はこの仕組みを見ている。私は今それを試してみましょう。はい、ウェイポイントは変換の配列です。 – user2924019

+1

それは素晴らしいです!それは今働いている。十分にあなたに感謝することはできません。 – user2924019

関連する問題