如何在脚本中向游戏对象添加渲染器?

时间:2017-03-31 21:05:43

标签: c# unity3d unity5

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函数。

1 个答案:

答案 0 :(得分:1)

当我写CUBE class时,我忘了提到立方体的渲染器现在是另一个对象的子节点。

您无需向多维数据集添加RendererMeshRenderer。它已经存在了。多维数据集只是一个子对象,父对象名为 CubeHolder 。您需要使用GetComponentInChildren来获取其Renderer

cube.GetComponent<Renderer>().material.color = Color.blue;

现在应该是:

cube.GetComponentInChildren<Renderer>().material.color = Color.blue;