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

47 lines
1.5 KiB
C#
Raw Normal View History

2024-09-09 16:10:24 +08:00
using Gameplay.Building.Data;
using Gameplay.Building.Impl;
namespace Gameplay.Building
{
public static class UnitBuildFactory
{
2024-09-09 19:22:22 +08:00
public static UnitBuild CreateBuild(BuildConfigData configData, uint uId, int troopId)
2024-09-09 16:10:24 +08:00
{
UnitBuild unitBuild = null;
2024-09-09 19:22:22 +08:00
switch (configData.buildType)
2024-09-09 16:10:24 +08:00
{
2024-09-09 19:22:22 +08:00
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;
2024-09-09 16:10:24 +08:00
case EFightBuildType.WatchTower:
var watchTower = new BuildWatchTower(uId, troopId);
unitBuild = watchTower;
break;
}
if (unitBuild != null)
{
2024-09-09 19:22:22 +08:00
unitBuild.InitConfig(configData);
2024-09-09 16:10:24 +08:00
}
else
{
2024-09-09 19:22:22 +08:00
DebugUtil.LogError("暂未实现的建筑类型:" + configData.buildType);
2024-09-09 16:10:24 +08:00
}
return unitBuild;
}
}
}