首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从列表中生成预制件

从列表中生成预制件
EN

Stack Overflow用户
提问于 2017-09-07 14:45:44
回答 1查看 3.2K关注 0票数 0

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

但是,我在将预置文件发送到我的场景时遇到了麻烦,因为Instatiate命令在我编码时确实返回了一个错误。

我已经尝试过通过list[index].name甚至list[index].toString()获取预制件的名称,但是它是行不通的。(注意:list表示列表中的变量,index只是获取列表中游戏对象的索引。这不是实际的代码)。

如何用列表将加载的GameObject预制件移植到我的场景中?

我现在的代码是:

代码语言:javascript
复制
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);
    }

错误如下所示

谢谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-09-07 15:37:28

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

代码语言:javascript
复制
Instantiate(ai[indexAI] ,spawn[indexSpawn].transform.position, spawn[indexSpawn].transform.rotation);
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46099304

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档