MeshRenderer和Renderer组件有什么区别?

4
我有这段代码。
GetComponent<MeshRenderer>().bounds

和这个

GetComponent<Renderer>().bounds

我试图搜索这两个组件之间的区别,但没有找到任何有用的信息。


1
MeshRenderer继承自Renderer,因此是更专门的网格渲染器?如果渲染器是网格渲染器,我会期望它们返回相同的对象。 - Sami Kuhmonen
如果人们时不时地查看Unity API,他们就不需要问这种问题了 :) - derHugo
1个回答

14
和组件之间的区别 用于显示3D对象/模型。 还有,用于显示像精灵一样的2D图像。 组件只是一个基类,和继承自它。由于变量在中声明,“从”或“从”访问它将给您相同的值。因为也继承自,所以您可以访问类的其他变量。
因此,GetComponent<MeshRenderer>().boundsGetComponent<Renderer>().bounds做相同的事情。第一个将获取并从父类访问变量。第二个将获取并直接从中访问变量。
值得注意的是,您不能将附加到游戏对象上。 您可以从游戏对象中访问它,但无法附加它。
例如,您可以执行以下操作:
GetComponent<Renderer>()

但你不能做这件事:

gameObject.AddComponent<Renderer>()

并且将会得到以下异常:

无法添加类型为“Renderer”的组件,因为它是抽象的。请添加派生自“Renderer”的组件类型。

只有从Renderer派生出来的组件才能被附加到游戏对象上。例如:SpriteRendererMeshRenderer


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接