对于刚接触Unity3D的新手,部分人会在3D的物理组件的理解中弄混刚体(rigidbody)和碰撞体(collider)这两者。网络上很多相关文章,个人认为逻辑条理清晰,但推荐给别人后仍然会有人说没有很大帮助。究其原因,应该是大部分文章是以unity中组件的特性和用法为基础去解释两者,对读者的unity基础有一定要求。最近向别人解释时突然想出一个以人对现实世界的理解为基础的解释方法,在此记录分享给大家。
首先,为了更好地解释这两个组件对物体的模拟,我们从一些更容易理解的组件来看看一个物体的构成:
Transform:
在Unity3D中,一个空的GameObject是只有Transform信息的,记录该物体的 位置信息。
Renderer:
当一个GameObject拥有了Renderer(以及它所依赖的MeshFilter和Material等),它就会显示在我们的场景当中,表现的就是该物体有 视觉信息。
这时想象你站在该物体的附近,如果你面向该物体的位置(Transform),你就可以看到该物体在你眼前(Renderer)。但如果这时你情不自禁想伸手去摸,你是不会打到前排观众的头造成纠纷的。
Collider:
我们给当前的GameObject再加上一个Collider组件(或者新建一个Cube,该GameObject会包含Transform、MeshFilter、Collider、MeshRenderer这四个组件),这时该物体就有了 空间占位信息。