using Gameplay.Building.Data; using Gameplay.Building.Impl; namespace Gameplay.Building { public static class UnitBuildFactory { public static UnitBuild CreateBuild(BuildConfigData configData, uint uId, int troopId) { UnitBuild unitBuild = null; switch (configData.buildType) { case EFightBuildType.Wall: var wall = new BuildWall(uId, troopId); unitBuild = wall; break; case EFightBuildType.Trap: var trap = new BuildTrap(uId, troopId); unitBuild = trap; break; case EFightBuildType.Pillbox: var pillBox = new BuildPillBox(uId, troopId); unitBuild = pillBox; break; case EFightBuildType.Mine: var mine = new BuildMine(uId, troopId); unitBuild = mine; break; case EFightBuildType.WatchTower: var watchTower = new BuildWatchTower(uId, troopId); unitBuild = watchTower; break; } if (unitBuild != null) { unitBuild.InitConfig(configData); } else { DebugUtil.LogError("暂未实现的建筑类型:" + configData.buildType); } return unitBuild; } } }