GameObject cube = Cube.CreatePrimitive(Cube.CubePivotPoint.UPLEFT);
cube.GetComponent<Renderer>().material.color = Color.blue;
当我指定颜色时,我会在行上获得异常:
cube.GetComponent<Renderer>().material.color = Color.blue;
MissingComponentException:“CubeHolder”游戏对象没有附加“渲染器”,但是脚本正在尝试访问它。 您可能需要向游戏对象“CubeHolder”添加渲染器。或者您的脚本需要在使用之前检查组件是否已连接。
注意:
我正在使用this中的CUBE
类来创建一个多维数据集,而不是Unity的GameObject.CreatePrimitive
函数。
答案 0 :(得分:1)
当我写CUBE class
时,我忘了提到立方体的渲染器现在是另一个对象的子节点。
您无需向多维数据集添加Renderer
或MeshRenderer
。它已经存在了。多维数据集只是一个子对象,父对象名为 CubeHolder 。您需要使用GetComponentInChildren
来获取其Renderer
。
cube.GetComponent<Renderer>().material.color = Color.blue;
现在应该是:
cube.GetComponentInChildren<Renderer>().material.color = Color.blue;