Exemplo n.º 1
0
        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();
        }
Exemplo n.º 2
0
 /// <summary>
 /// 创建爆炸特效
 /// </summary>
 /// <param name="boomPos"></param>
 public static void CreateBoomEffect(Vector3 boomPos)
 {
     ExplosionEffectFactory.Create(boomPos);
 }