在unity3d中如何实现碰撞效果?只是那样说过大家不会很理解,在我们通过一个例子学习unity3d中如何实现碰撞效果。
现在有一个锤子正向右移动追赶小猪,我想当锤子追上小猪的时候,锤子会打小猪的脑袋,并且锤子会蹦蹦跳跳,表示胜利。而小猪则会被打晕。如果游戏结束时锤子没有追上小猪,则锤子会很失落。现在我把所有的动作都做好了(跑得动作,跳的动作.......)然后就是实现碰撞效果了。
方法一:你可以使用“静态触发碰撞器”的方式
1.给两个角色都加上碰撞器 至于用什么类型的 看你喜欢 看你的角色 我个人建议使用Sphere collider(圆形碰撞器);
2. 然后你可以任意选择一个角色加上刚体属性 当然把重力选项关了;
3.然后 可以选择将没有加刚体的另一个角色 将其碰撞器的Is Trigger勾选;
4.将小猪角色对象的Tag改为一个你喜欢的名称,比如Monster;
5.添加代码 进行碰撞检测;- function OnTriggerEnter(obj:Collider )
- {
- //普通怪物碰撞
- if( obj.gameObject.tag == "Monster" )
- {
- //停止位移 播放你想要的动作
- }
- }
6.将代码拖到锤子对象上。
方法二:利用两个对象中心距离进行距离判断