动画碰撞

 

一、赋予怪兽攻击技能

怪兽:

首先选中怪兽的双臂--->添加Sphere Collider和Rigidbody组件--->勾选Is Trigger选项使用触发器

 

玩家:

添加Capsule和Rigidbody组件--->选择Constrains勾选X和Z轴,保证玩家移动不会摔倒。

 

    //表示玩家生命值的变量
    public int hp = 100;

    void OnTriggerEnter(Collider coll)
    {
        //如果发生碰撞的Collider为怪兽的PUNCH,则减少玩家的HP
        if (coll.gameObject.tag == "PUNCH")
        {
            hp -= 10;
            Debug.Log("Player HP=" + hp.ToString());

            //玩家生命值小于10时进行死亡处理
            if (hp <= 0)
            {
                PlayerDie();
            }
        }
    }

    void PlayerDie()
    {
        Debug.Log("Player Die!!");
    }

 

二、特定层之间的碰撞感知

 

我们之前存在这样一个问题:对于怪兽添加了碰撞体和刚体,而又对其子对象的手臂也添加的碰撞体和刚体,这样会产生物体内部发生碰撞。

那么我们应该怎么解决?

 

我们利用层的概念Layer,设置monster为Body层,而手臂为Punch层;值得注意的是,monster中不应用子对象。

分层之后就避免了物体内的相互碰撞。

转载于:https://www.cnblogs.com/Optimism/p/10896495.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值