关于Unity碰撞器刚体那些事,适合小白,详细图解

写这篇文章是因为自己也被困扰了许久…
写两个简单的案例来说明碰撞和触发。

案例一:碰撞物理碰撞,有明显的物理表现
**演示:*新建一个球,一个方块,这里演示的是球掉落到方块上。
给球加上刚体(Rigibidy)组件。因为球和方块都自带了collider就不用加了,如果没有则两个都要加上触发器,collider类型根据物体自己选择

关于Unity碰撞器刚体那些事,适合小白,详细图解_第1张图片

新建一个脚本,挂载到Cube上。
关于Unity碰撞器刚体那些事,适合小白,详细图解_第2张图片
关于Unity碰撞器刚体那些事,适合小白,详细图解_第3张图片
两个物体的触发器上的Is Trigger都不要勾选!!!重要的事情说三遍
脚本编写如下:
关于Unity碰撞器刚体那些事,适合小白,详细图解_第4张图片
运行之后:
关于Unity碰撞器刚体那些事,适合小白,详细图解_第5张图片
同时控制台显示出:
在这里插入图片描述
在运行过程中,回到scene面板把球拖走会怎么样呢?
关于Unity碰撞器刚体那些事,适合小白,详细图解_第6张图片
然后控制台打印出:
在这里插入图片描述
这说明三个碰撞方法都有实现了,在实际开发中就可以在相应碰撞方法里写相应的逻辑了。

案例二:触发非物理碰撞,没有物理现象
同样是上面那个例子,球从上面掉下来砸到方块上。
这次我们勾选上Sphere的sphere collider组件的Is trigger。
关于Unity碰撞器刚体那些事,适合小白,详细图解_第7张图片
关于Unity碰撞器刚体那些事,适合小白,详细图解_第8张图片
然后在脚本添加三个方法。
关于Unity碰撞器刚体那些事,适合小白,详细图解_第9张图片
运行之后,控制台打印出这些:
关于Unity碰撞器刚体那些事,适合小白,详细图解_第10张图片

总结:
1.要想有物理碰撞现象,碰撞双方都要有触发器,都不要勾选Is Trigger,其中运动的物体要添加刚体;
碰撞方法:
void OnCollisionEnter(Collision coll){}
void OnCollisionStay(Collision coll){}
void OnCollisionExit(Collision coll){}
2.要想有非物理碰撞现象,碰撞双方都要有触发器,其中至少有一方要勾选Is Trigger;
触发方法:
void OnTriggerEnter(Collider other){}
void OnTriggerStay(Collider other){}
void OnTriggerExit(Collider other){}

你可能感兴趣的:(关于Unity碰撞器刚体那些事,适合小白,详细图解)