首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >将预制板作为游戏对象的孩子在一个整体中产卵

将预制板作为游戏对象的孩子在一个整体中产卵
EN

Stack Overflow用户
提问于 2018-09-14 19:10:59
回答 1查看 3.4K关注 0票数 1

我有一个产卵器游戏对象,它产生两个不同的预制板。我试图使这个衍生的对象,产卵者的孩子,游戏对象,但它不工作。

这是我的尝试(此代码在spawner游戏对象中):

代码语言:javascript
运行
复制
void Update () {

    if (Time.time > nextSpawn)
    {
        whatToSpawn = Random.Range(1, 3);
        Debug.Log(whatToSpawn);

        switch(whatToSpawn) {
        case 1:
                Instantiate(cube, transform.position, Quaternion.identity);
                cube.transform.parent = transform;
                break;
        case 2:
            Instantiate(circle, transform.position, Quaternion.identity);
            circle.transform.parent = transform;
            break;
        }

        nextSpawn = Time.time + spawnRate;
    }
}

这给我带来了一个错误:

代码语言:javascript
运行
复制
setting the parent of a transform which resides in a prefab is disabled
EN

Stack Overflow用户

回答已采纳

发布于 2018-09-14 19:17:23

问题是,您正在尝试设置多维数据集和圆圈预制板的父级,而不是实例化的实际多维数据集和圆圈对象。将开关语句替换为以下语句:

代码语言:javascript
运行
复制
switch(whatToSpawn)
{
    case 1:
        GameObject myCube = (GameObject)Instantiate(cube, transform.position, Quaternion.identity);
        myCube.transform.parent = transform;
        break;
    case 2:
        GameObject myCircle = (GameObject)Instantiate(circle, transform.position, Quaternion.identity);
        myCircle.transform.parent = transform;
        break;
}

Instantiate函数转换为(GameObject)将返回对您刚才实例化的对象的引用。

Note:正如Draco18s所提到的,直接与父节点一起重载Instantiate更有效,如下所示:

代码语言:javascript
运行
复制
switch(whatToSpawn)
{
    case 1:
        Instantiate(cube, transform.position, Quaternion.identity, transform);
        break;
    case 2:
        Instantiate(circle, transform.position, Quaternion.identity, transform);
        break;
}
票数 3
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52337973

复制
相关文章

相似问题

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