私はResources/aiフォルダからプレハブをロードし、最大5回ループしてランダムなインデックス番号を生成するスクリプトを作成しました。私のプレハブをGameObjectsとして正常にロードし、リストのカウントに基づいてランダムなインデックスを生成します。Unity 3Dがリストからプレハブを作成する
しかし、コーディング中にInstatiateコマンドがエラーを返すので、私は自分のシーンにプレハブを生成する際に問題があります。
私はプレハブの名前をlist[index].name
またはlist[index].toString()
で取得する方法を試しましたが、動作しません。 (注:list
はリストの変数を表しますindex
は、リスト上のゲームオブジェクトを取得するための単なるインデックスです。これは実際のコードではありません)。
ロードされたGameObjectプレハブをリストでシーンに追加するにはどうすればよいですか?
私の現在のコード:
public List<GameObject> ai;
public GameObject[] spawn;
int indexAI;
int indexSpawn;
private void Start()
{
var res = Resources.LoadAll<GameObject>("ai/");
foreach (GameObject obj in res)
{
ai.Add(obj);
}
for (int x=0; x<5; x++)
{
indexAI = UnityEngine.Random.Range(0,ai.Count);
indexSpawn = UnityEngine.Random.Range(0, spawn.Length);
string name = ai[indexAI].name;
Debug.Log(name);
//I am currently using this kind of format since this is what I know for now.
Instantiate(name,spawn[indexSpawn].transform.position,spawn[indexSpawn].transform.rotation);
}
ありがとう!
どのようなエラーが返されますか?あなたの 'instantiate'コードと同様に投稿してください。 – ryeMoss
' ai'とは何ですか(定義方法は?) – UnholySheep
@UnholySheep 'List ai'。あなたは 'ai.Count'と' ai.Add(obj); 'を見て知ることができます。 @OPあなたの質問は明確ではなく、あなたは何かをインスタンス化していません。 –
Programmer