You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
42 lines
1.2 KiB
42 lines
1.2 KiB
3 years ago
|
using UnityEngine;
|
||
|
|
||
|
namespace ET
|
||
|
{
|
||
|
public class AI_XunLuo: AAIHandler
|
||
|
{
|
||
|
public override int Check(AIComponent aiComponent, AIConfig aiConfig)
|
||
|
{
|
||
|
long sec = TimeHelper.ClientNow() / 1000 % 15;
|
||
|
if (sec < 10)
|
||
|
{
|
||
|
return 0;
|
||
|
}
|
||
|
return 1;
|
||
|
}
|
||
|
|
||
|
public override async ETTask Execute(AIComponent aiComponent, AIConfig aiConfig, ETCancellationToken cancellationToken)
|
||
|
{
|
||
|
Scene zoneScene = aiComponent.DomainScene();
|
||
|
|
||
|
Unit myUnit = UnitHelper.GetMyUnitFromZoneScene(zoneScene);
|
||
|
if (myUnit == null)
|
||
|
{
|
||
|
return;
|
||
|
}
|
||
|
|
||
|
Log.Debug("开始巡逻");
|
||
|
|
||
|
while (true)
|
||
|
{
|
||
|
XunLuoPathComponent xunLuoPathComponent = myUnit.GetComponent<XunLuoPathComponent>();
|
||
|
Vector3 nextTarget = xunLuoPathComponent.GetCurrent();
|
||
|
int ret = await myUnit.MoveToAsync(nextTarget, cancellationToken);
|
||
|
if (ret != 0)
|
||
|
{
|
||
|
return;
|
||
|
}
|
||
|
xunLuoPathComponent.MoveNext();
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
}
|