代码之家  ›  专栏  ›  技术社区  ›  MetalCat

我在unity中实例化新游戏对象时出错。有人能帮我吗?

  •  -1
  • MetalCat  · 技术社区  · 8 年前

    当岩石与平台碰撞时,我想把它们分成小块。

    首先,我创建了新的小岩石游戏对象,将它们添加到空的游戏对象中,然后将它们放入预设文件夹中,并将它们命名为remainsRock,这将是碰撞后的岩石碎片。

    然后我试着在销毁石头后实例化这个遗骸,但出现了这个错误。有人知道该怎么做吗?

    错误:

    UnassignedReferenceException:explosionEffect的变量剩余部分尚未分配。 您可能需要在inspector中指定explosionEffect脚本的remains变量。

    public GameObject remains;

    if (collisionInfo.gameObject.tag == "cliff")
            {
                Instantiate(remains);
                Destroy(gameObject);
    
            }
    

    GameObject remainsInstantiate = (GameObject)Instantiate(remains, transform.position, transform.rotation);

    GameObject instantiateRemains = (GameObject)Instantiate(remains);

    2 回复  |  直到 8 年前
        1
  •  0
  •   Neil Busse    8 年前

    我很确定这是因为 无效的

    例如

    Rigidbody2D rdg2D = GetComponent<Rigidbody2D>();
    // For you
    gameObject = remains;
    

    代码可能并不完美,但希望它足以将您推向正确的方向。如果不是的话,我可能会看YouTubers Quill18的比赛,他真的很善于团结,远比我强。

        2
  •  0
  •   Draco18s no longer trusts SE    8 年前

    让我强调一下重要的一点。

    残余

    remains 为空。不能实例化null。它不存在。

    Instantiate(remains);
    

    你不能,因为 残余 为空。您需要为其分配一个游戏对象,可能是在Inspector中。你尝试的事情都不是试图给它赋值 包含(它不包含任何内容)。

    抓取一个随机脚本,我必须给你一张图片(名称与脚本不同):

    No object assigned

    explosionEffect