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