protected override void CollisionEnter(Collision other) { M_Rigidbody.Sleep(); BulletMark bulletMark = other.gameObject.GetComponent <BulletMark>(); AIBase ai = other.gameObject.GetComponentInParent <AIBase>(); // 攻击环境物体. if (bulletMark != null) { bulletMark.CreateBulletMark(hit); bulletMark.Hp -= Damage; } // 攻击AI角色. else if (ai != null) { // 头部伤害加倍. if (other.gameObject.name == "Head") { ai.Life -= 2 * Damage; ai.HitHeadState(); } else { ai.Life -= Damage; ai.HitNormalState(); } ai.PlayEffect(hit); } gameObject.SetActive(false); }
/// <summary> /// 射击. /// </summary> protected override void Shoot() { if (hit.point != Vector3.zero) { BulletMark bulletMark = hit.collider.GetComponent <BulletMark>(); AIBase ai = hit.collider.GetComponentInParent <AIBase>(); // 射击到环境物体. if (bulletMark != null) { bulletMark.CreateBulletMark(hit); bulletMark.Hp -= Damage; } // 攻击AI角色. else if (ai != null) { // 头部伤害加倍. if (hit.collider.gameObject.name == "Head") { ai.Life -= 2 * Damage; ai.HitHeadState(); } else { ai.Life -= Damage; ai.HitNormalState(); } ai.PlayEffect(hit); } } else { GameObject.Instantiate <GameObject>(m_AssaultRifleView.Prefab_Bullet, hit.point, Quaternion.identity); } Durable--; }
/// <summary> /// 碰撞事件. /// </summary> protected override void CollisionEnter(Collision other) { GameObject.Destroy(M_Rigidbody); GameObject.Destroy(m_BoxCollider); BulletMark bulletMark = other.gameObject.GetComponent <BulletMark>(); AIBase ai = other.gameObject.GetComponentInParent <AIBase>(); // 攻击环境物体. if (bulletMark != null) { bulletMark.Hp -= Damage; bulletMark.PlayHitAudio(hit); } // 攻击AI角色. else if (ai != null) { // 头部伤害加倍. if (other.gameObject.name == "Head") { ai.Life -= 2 * Damage; ai.HitHeadState(); } else { ai.Life -= Damage; ai.HitNormalState(); } ai.PlayEffect(hit); } // 通用效果展现. M_Transform.SetParent(other.gameObject.GetComponent <Transform>()); StartCoroutine("TailAnimation", m_PivotTransform); }