我有这个代码
GetComponent<MeshRenderer>().bounds
还有这个
GetComponent<Renderer>().bounds
试图search两者之间有什么区别,但没有发现任何帮助。
答案 0 :(得分:3)
MeshRenderer和Renderer组件之间的区别
有MeshRenderer
用于显示3D对象/模型。还有SpriteRenderer
用于显示2D图像(如精灵)。 Renderer
组件只是MeshRenderer
和SpriteRenderer
派生的基类。 bounds
变量是在Renderer中声明的,因此从MeshRenderer
或Renderer
对其进行访问将为您提供相同的值。由于SpriteRenderer
也源自Renderer
,因此您可以访问Renderer
类中的其他变量。
因此,GetComponent<MeshRenderer>().bounds
和GetComponent<Renderer>().bounds
在做同样的事情。第一个将获取MeshRenderer
并从bounds
父类访问Renderer
变量。第二个变量将获得Renderer
并直接从中访问bounds
变量。
值得注意的是,您无法将Renderer
附加到GameObject。您可以从GameObject访问它,但不能附加它。
例如,您可以执行以下操作:
GetComponent<Renderer>()
但是您不能这样做:
gameObject.AddComponent<Renderer>()
,并在下面得到异常:
无法添加类型为“ Renderer”的组件,因为它是抽象的。加 而是从“ Renderer”派生的类型的组件。
只有从Renderer
派生的组件才可以附加到GameObject。例如,SpriteRenderer
和MeshRenderer
。