NLDClient-yudde/ProjectNLD/Assets/Code/Scripts/Gameplay/Building/UnitBuildFactory.cs

47 lines
1.5 KiB
C#

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;
}
}
}