GetComponent <renderer>()返回null

时间:2017-09-08 08:36:10

标签: c# unity3d

我正在尝试访问我的桶对象的网格渲染器。在Unity播放器中,everythinks工作正常,但在创建构建时,我在尝试访问我的Barrel游戏对象的渲染器时会得到一个null引用。我场景中的标签是正确的。奇怪的是,石油渲染器运作良好。任何帮助或建议将不胜感激。

此外,没有其他对象具有标记“桶”。我检查了GameObject.FindGameObjectsWithTag(“桶”)的返回值

更新

我记录了桶游戏对象的组件, 而且没有列出meshRenderer,我不知道为什么会这样做

private void EvaluateDissolve()
{
    foreach (GameObject gobj in GameObject.FindGameObjectsWithTag("oil"))
    {
        gobj.GetComponent<Renderer>().sharedMaterial.SetFloat("_SliceAmount",m_dissolveFactor + 0.2f);
    }

    foreach (GameObject gobj in GameObject.FindGameObjectsWithTag("barrel"))
    {
        if (gobj.GetComponent<Renderer>() == null)
            Debug.Log("Renderer is null");

        gobj.GetComponent<Renderer>().sharedMaterial.SetFloat("_SliceAmount",m_dissolveFactor);
    }
}

enter image description here

0 个答案:

没有答案