Unity 3D从列表

时间:2017-09-07 14:45:45

标签: c# unity3d

我创建了一个脚本,它从我的Resources / ai文件夹加载预制件并循环最多五次并生成一个随机索引号。它成功地将我的预制件加载为GameObjects,并根据List的计数生成随机索引。

然而,由于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);
    }

The error looks like this

谢谢!

1 个答案:

答案 0 :(得分:2)

您正在尝试实例化一个字符串 - 您需要在您的ai列表中实例化游戏对象。

Instantiate(ai[indexAI] ,spawn[indexSpawn].transform.position, spawn[indexSpawn].transform.rotation);