一、赋予怪兽攻击技能
怪兽:
首先选中怪兽的双臂--->添加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中不应用子对象。
分层之后就避免了物体内的相互碰撞。