###実現したいこと
prefab化した「wallprefab」オブジェクトを用いて、
壁を生成する「WallGeneratorScript」によって
壁を同時に生み出した時、
C#
1public GameObject wallPrefab; 2GameObject go1 = Instantiate(wallPrefab); 3GameObject go2 = Instantiate(wallPrefab); 4
このプログラムを実行しwallprefab(clone)が同時に二つ生成。
(clone)と語尾についたオブジェクトを生成したとき、
個々の座標を取得することは可能でしょうか?
###困った場面
当たり判定を作るため、プレイヤーの座標と壁の座標を取得するときに問題が発生しました
「wallPrefub」へアタッチしたスクリプト、「wallScript」中では
C#
1 GameObject player; 2 3 void Start() 4 { 5 this.player = GameObject.Find("Player"); 6 } 7 8 Vector2 p1 = transform.position; // wallprefabの座標を取得 9 Vector2 p2 = this.player.transform.position; // プレイヤーの座標を取得
と書き、
実際「wallScript」内で当たり判定を発生させるプログラムを書けば、
後に生成されるwallprefab(clone)にも当たり判定を付けることができました。
これとは反対に、
「wallprefab」を別のスクリプトで読み取りたいとき
Playerへアタッチするスクリプト「playerScript」内では、
C#
1 GameObject wallprefub ; 2 3 this.wallprefab = GameObject.Find("WallPrefab); 4 5 Vector2 p1 = this.wallprefab.transform.position; // wallprefabの座標を取得 6 Vector2 p2 = transform.position; // プレイヤーの座標を取得
参照する項目がないとかで、
this.wallprefabと記述した部分はエラーが発生し
当たり判定を生成することはかないませんでした
###補足
現在は当たり判定の生成方法を変え、「WallScript」内でプログラムを書くことで
目標は達成しました。そのため急ぎの質問ではございません。
あなたの回答
tips
プレビュー