OldBlueWater/BlueWater/Assets/02.Scripts/Ai/Human/Unit/PirateUnit.cs

60 lines
1.7 KiB
C#
Raw Normal View History

2023-09-12 14:46:57 +00:00
using Sirenix.OdinInspector;
using UnityEngine;
// ReSharper disable once CheckNamespace
namespace BlueWaterProject
{
public class PirateUnit : BaseUnit
{
#region Property and variable
[PropertyOrder(-10)]
public PirateUnitStat pirateUnitStat;
#endregion
#region Custom function
public void MoveCommand(Vector3 targetPos)
{
var gridSize = 0;
switch (pirateUnitStat.PirateAiList.Count)
2023-09-12 14:46:57 +00:00
{
case 0:
gridSize = 1;
break;
case <= 3:
gridSize = 2;
break;
case <= 8:
gridSize = 3;
break;
case <= 15:
gridSize = 4;
break;
default:
print("유닛의 병사 숫자 설정 에러");
break;
}
for (var i = 0; i < gridSize; i++)
{
for (var j = 0; j < gridSize; j++)
{
var currentPos = i * gridSize + j;
if (currentPos >= pirateUnitStat.PirateAiList.Count) return;
2023-09-12 14:46:57 +00:00
var zOffset = (i - (gridSize - 1) / 2.0f) * UnitManager.Inst.UnitSpacing;
var xOffset = (j - (gridSize - 1) / 2.0f) * UnitManager.Inst.UnitSpacing;
var movePos = targetPos + new Vector3(xOffset, 0, zOffset);
2023-09-18 00:21:55 +00:00
pirateUnitStat.PirateAiList[currentPos].CommandMoveTarget(movePos);
2023-09-12 14:46:57 +00:00
}
}
}
#endregion
}
}