コード例 #1
0
        public override void Step(float deltaTime)
        {
            base.Step(deltaTime);

            timer -= deltaTime;
            if (timer <= 0)
            {
                timer = span;

                List <int> unitIDs = physics.GetUnit(visionRadius, unitRoot.GetChild <Transform>().Position);
                foreach (int unitID in unitIDs)
                {
                    Unit unit = Root.GetChild <WorldEntity>().GetUnit(unitID);
                    if (unit != null && unit.Team != unitRoot.Team)
                    {
                        if (physics.CheckLightOfSight(unitRoot.UnitID, unit.UnitID))
                        {
                            Sight sight = unit.GetChild <Sight>();
                            if (sight != null)
                            {
                                sight.SetSight(unitRoot.Team);
                            }
                        }
                    }
                }
            }
        }
コード例 #2
0
ファイル: Unit.cs プロジェクト: zzm0101/MOBA_CSharp_Unity
        public void Damage(int unitID, bool isDamage, float amount)
        {
            hpDamageHistories.Add(new DamageHistory(unitID, isDamage, amount));

            Unit enemyUnit = Root.GetChild <WorldEntity>().GetUnit(unitID);

            if (enemyUnit != null && enemyUnit.Team != Team)
            {
                Sight enemySight = enemyUnit.GetChild <Sight>();
                if (enemySight != null)
                {
                    enemySight.SetSight(Team);
                }

                Sight sight = GetChild <Sight>();
                if (sight != null)
                {
                    sight.SetSight(enemyUnit.Team);
                }
            }
        }