-
为了在当前的Scene中表现任何物理性质
-
一个Game Object必须至少拥有一个
-
Collider Component并且定义它的物理形状
-
以及对物理引擎的反应。
-
Unity拥有两个物理引擎。
-
一个是3D一个是2D。
-
这两个物理系统不会与另一个产生交互。
-
更多关于物理系统以及2D物理系统的内容
-
请查看下面的链接。
-
当使用2D物理引擎时
-
必须使用一个Collider 2D组件
-
有四种Collider 2D组件可以选择。
-
Circle Collider 2D 2D圆形碰撞器
-
Box Collider 2D 2D方形碰撞器
-
Polygon Collider 2D 2D多边形碰撞器
-
以及Edge Collider 2D 2D边界碰撞器。
-
这些Collider共享一些属性
-
因为它们都继承自相同的组件
-
也就是Collider 2D。
-
每一个Collider 2D组件
-
都最适合某一种形状。
-
Circle Collider 2D
-
最适合圆形实体。
-
Box Collider 2D 最适合方形实体。
-
Polygon Collider 2D
-
最适合复杂的形状。
-
而Edge Collider 2D最适合物体表面。
-
Edge Collider和Edge Collder非常的相似。
-
它们都是由许多的点和面组成,
-
并且通过边链接起来。
-
它们之间最大的不同就是Polygon Collider
-
必须是区域内闭合的形状。
-
而Edge Collider必须是开放的,
-
一个边界可以由许多的片段组成。
-
Edge Collider的一个很好的应用
-
就是用来一个单一的土壤表面
-
而不是一系列的2D Colliders
-
即使使用了许多Sprites来构成
-
这个表面的视觉效果。
-
当所有2D Colliders相互比较时
-
Inspector中显示出了两个属性
-
是他们共有的。
-
是否为触发器(Is Trigger)以及材料(Material)。
-
剩下特定的属性用来定义
-
这个2D Collider的形状。
-
Is Trigger属性会将Collider的行为
-
变成一个Trigger Collider。
-
正常的2D物理碰撞时
-
2D物理引擎会防止
-
两个2D Collider穿过对方。
-
2D Trigger Collider不会参与
-
到物理碰撞中并且会发送
-
2D Trigger信息而不是2D Collision信息。
-
这些Trigger信息可以被用来
-
在Scene中创建新的行为。
-
关于Is Trigger的更多信息
-
以及Collider发送的消息
-
请参考下面的链接。
-
Material属性是
-
Collider 2D使用的2D物理材质
-
这个属性可以为空。
-
物理材质定义了当Collider
-
发生碰撞时如何反映出
-
边界以及
-
表面摩擦力变化。
-
如果将一个弹性皮球或者滑溜的冰面覆盖到表面
-
会令每一个Collider 2D
-
产生不同的2D物理材质效果。
-
关于2D物理材质的信息
-
请参看下面的链接。
-
为了使用Collider 2D
-
必须将它附到一个Game Object上去。
-
一种添加Collider 2D组件的方式
-
就是使用Add Component按钮
-
并且选择Physics 2D
-
然后选择一个Collider 2D Component。
-
关于Game Object,
-
Component以及如何使用它们的信息
-
请参看下面的链接。
-
当一个Collider 2D组件被附加之后,
-
Unity会尝试使Collider 2D的大小适合该Sprite。
-
如果这个Collider 2D的大小与形状
-
不合适,此时可以通过
-
改变Inspector中的值
-
或者从Scene View中改变Collider 2D来进行操作。
-
如果要在Scene View中编辑一个Collider 2D
-
按住Shift键。
-
此时会显示2D Collider的边框
-
以及锚点在当前的Scene View中。
-
这些边框都是可拖拽的。
-
此时如果移动Edge Collider以及Polygon Collider
-
的边界时就会移动
-
这个Collider的定点并且改变这个Collider的形状
-
而不是这个Collider的大小。
-
当光标引动到Edge Collider或者Poly Collider
-
的空边界时
-
通过点击就可以产生一个新的顶点。
-
同时会产生一个新的边框
-
并且边界会被绿色标为高亮。
-
在Edge Collider以及Poly Collider的情况下
-
按住Control键
-
可以通过点击删除一个顶点。
-
这时边框
-
以及边界会被标红。
-
一个Game Object并不要Rigidbody 2D
-
就可以使用Collider 2D。
-
为了参与到2D碰撞以及Trigger事件的话
-
则至少其中一个Game Object
-
必须包含一个Rigidbody 2D。
-
一个最合适的使用模式就是
-
附加Collider 2D组件
-
而不添加Rigidbody组件
-
到所有静态,或者说不移动的Game Object上
-
这样它们就能参与到2D物理系统中。
-
然后将Collider 2D以及Rigidbody 2D
-
附加到一个动态的,或者说移动的Game Object上
-
这样它们就会在Sence产生交互。
-
关于2D物理系统
-
Collider 2D,碰撞以及Trigger的更多信息
-
请参考下面的链接。