Gameobject在鼠标点击时不活动

时间:2016-10-31 16:26:15

标签: c# unity3d

我在unity3d遇到问题我正在做的是一个游戏对象,这是一个简单的立方体和 它附加了一个名为import renderer from 'react-test-renderer'; const component = renderer.create(<UserProfile user={user} />); const tree = component.toJSON(); expect(tree).toMatchSnapshot(); 的组件,它是红色的。还有一个脚本附加到此 在鼠标左键单击时执行事件的立方体,即将材料颜色更改为绿色。剧本 工作正常,但我想在场景中有一个Material canvas默认无效。 Picture我想 当材料颜色为绿色时激活此游戏对象或当颜色为红色时停用。我正在使用 一个名为gameobject的函数,但错误即将来临。此外,我尝试通过调用此函数GameObject.Find("Canvas")使用此画布使用标签来解决此问题,但没有任何作用。同样的错误即将到来。

GameObject.FindWithTag("Canvas")

代码:

NullReferenceException: Object reference not set to an instance of an object

1 个答案:

答案 0 :(得分:0)

禁用GameObject时,

GameObject.Find不起作用。从您问题中的屏幕截图中,Canvas GameObject被禁用。

这就是你得到的原因:NullReferenceException: Object reference not set to an instance of an object

为它创建一个公共变量并将Canvas拖到那里。

[SerializeField]
private bool check;

public GameObject myCanvas;

void OnMouseDown()
{
    if (!check)
    {
        gameObject.GetComponent<Renderer>().material.color = Color.green;
        myCanvas.SetActive(true);
        check = true;
    }
    else if (check)
    {
        gameObject.GetComponent<Renderer>().material.color = Color.red;
        check = false;
    }
}