unity3d中如何实现碰撞效果?只是那样说过大家不会很理解,在我们通过一个例子学习unity3d中如何实现碰撞效果。

现在有一个锤子正向右移动追赶小猪,我想当锤子追上小猪的时候,锤子会打小猪的脑袋,并且锤子会蹦蹦跳跳,表示胜利。而小猪则会被打晕。如果游戏结束时锤子没有追上小猪,则锤子会很失落。现在我把所有的动作都做好了(跑得动作,跳的动作.......)然后就是实现碰撞效果了。

 方法一:你可以使用“静态触发碰撞器”的方式

1.给两个角色都加上碰撞器 至于用什么类型的 看你喜欢  看你的角色 我个人建议使用Sphere collider(圆形碰撞器);

2. 然后你可以任意选择一个角色加上刚体属性  当然把重力选项关了;

3.然后 可以选择将没有加刚体的另一个角色 将其碰撞器的Is Trigger勾选;

4.将小猪角色对象的Tag改为一个你喜欢的名称,比如Monster;

5.添加代码 进行碰撞检测;
  1. function OnTriggerEnter(obj:Collider )
  2. {
  3. //普通怪物碰撞
  4. if( obj.gameObject.tag == "Monster" )
  5. {
  6. //停止位移 播放你想要的动作
  7. }
  8. }

6.将代码拖到锤子对象上。

方法二:利用两个对象中心距离进行距离判断