防御塔可能只能打地面、空中或全部怪物;还要执行最近、随机、集火或最小射程规则。本文沿着真实调用链分析开火前如何得到目标。
MyFramework:https://github.com/ZHOURUIH/MyFramework
塔防 Demo:GitHub - ZHOURUIH/MyFramework_TDDemo: TowerDefense demo based on MyFramework · GitHub
一、怪物为什么保存三份集合
BattleModeBase同时维护全部、地面和飞行怪物:
protected SafeList<CharacterMonster> mMonsterList = new(); protected HashSet<CharacterMonster> mWalkMonsterList = new(); protected HashSet<CharacterMonster> mFlyMonsterList = new();怪物进场时,根据