UnityでPrefabを使用しているのですが、挙動がわからない箇所があります。
現状以下の通りです。
・オブジェクトAにスクリプトAをアタッチ(スクリプトAの中でクラスをインスタンス化している)
・オブジェクトAをPrefab化
・スクリプトBを使用してオブジェクトAを複数インスタンス化
スクリプトAの概要は以下です。
C#
1public class スクリプトA: MonoBehaviour 2{ 3 Class class; 4 5 void Start(){ 6 this.class = new Class(); 7 } 8}
クラスの概要は以下です。
C#
1public class Class 2{ 3 private Vector3 position; 4 5 public Class(){ 6 position = new Vector3(Random.Range(-10, 10), Random.Range(-10, 10), 0); 7 } 8}
スクリプトBの概要は以下です。
C#
1public class スクリプトB: MonoBehaviour 2{ 3 public GameObject prefab; 4 5 void Start(){ 6 for(int i = 0; i < 10; i++){ 7 GameObject object = Instantiate(prefab) as GameObject; 8 } 9 } 10}
こうした場合、10個生成したインスタンス化したはずなのにスクリプトAが持つClassがすべて共通になっているような気がします。
Prefabを使用して複数インスタンス化した場合の挙動はこれが正しいのでしょうか?
正しい場合、Classをインスタンス毎に持つにはどうしたらよいでしょうか?
よろしくお願いいたします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。