public void OnTriggerEnter(Collider other) { // Log.Info("OnTriggerEnter"); // layer = 9 是自己 if (other.gameObject != null && other.gameObject.layer == 9) { return; } // 创建爆炸效果 ExplosionEffectFactory.Create(this.m_bullet.Position); if (other.attachedRigidbody != null && other.attachedRigidbody.tag == Tag.Tank) { // 给坦克造成伤害 TankComponent tankComponent = Game.Scene.GetComponent <TankComponent>(); long objInstanceId = other.attachedRigidbody.gameObject.GetInstanceID(); Tank beAttackTank = tankComponent.Get(objInstanceId); // 如果自己阵营,不造成伤害 //if (beAttackTank.TankCamp == this.Tank.TankCamp) // return; int damage = this.m_bullet.AttackPower + this.Tank.GetComponent <NumericComponent>()[NumericType.Atk]; // beAttackTank.BeAttacked(this.Tank, damage); // 发送炮弹的玩家才向服务器通知 if (this.m_bullet.Tank.TankType == TankType.Local) { Send_C2B_AttackTank(beAttackTank.Id, damage).NoAwait(); } } this.m_bullet.Dispose(); }
/// <summary> /// 创建爆炸特效 /// </summary> /// <param name="boomPos"></param> public static void CreateBoomEffect(Vector3 boomPos) { ExplosionEffectFactory.Create(boomPos); }