Unityのアプリ制作でランゲームみたいなものを作っています。
下図、空のゲームオブジェクトDummyPlayerを作成、
DummyPlayerにアタッチしたスクリプトから動的にキャラクターを生成しています。
======================
やりたいこと
下図、動的に生成したキャラクターを、縦(画面奥行方、Z方向)1列に等間隔で並べたい。
Dummy Playerの子要素に生成されるcharacterオブジェクトにアタッチしたスクリプトが、
親要素の何番目かを取得する方法が調べてもわからなかったため、ご教示いただけると幸いです。
例 Dummy Playerの2番目に生成したcharacterにアタッチしているスクリプトから、
自分のオブジェクトがDummy Playerの何番目に位置していかをInt型で取得したい
======================
Dummy Playerにアタッチしたスクリプト
C#
1public class CreateDummyPlayer : MonoBehaviour 2{ 3 public void addPlayer() 4 { 5 var pos = GameObject.Find("character"); 6 var loadPrefab = Resources.Load<GameObject>("character"); 7 var createPrefab = Instantiate(loadPrefab, 8 new Vector3(pos.x, pos.y, pos.z-0.5f), 9 Quaternion.identity 10 ); 11 var pObj = GameObject.Find("DummyPlayer"); 12 createPrefab.gameObject.transform.parent = pObj.transform; 13 } 14}
動的に生成されるcharacterプレファブにアタッチしているスクリプト
C#
1 void Update() 2 { 3 var objParent = this.transform.parent; 4 int ObjCount = objParent.transform.childCount; 5 Debug.Log(ObjCount); 6 }
上記で子要素の数は取得できたが、Dummy Playerの何番目のオブジェクトかが取得できない
何番目のオブジェクトか取得したら、先頭のオブジェクトposition.z - 1× Indexで配置設定し、Z方向1列にゲームオブジェクトを並べる想定で作成しています。

回答1件
あなたの回答
tips
プレビュー