NLDClient-yudde/ProjectNLD/Assets/Code/Scripts/Gameplay/AI/BTImplement.Load.cs

36 lines
1.1 KiB
C#

using BehaviorDesigner.Runtime;
using Cysharp.Threading.Tasks;
using PhxhSDK;
using UnityEngine;
using Constants = Framework.Constants;
namespace Gameplay.BT
{
public partial class BTImplement
{
public class AssetEntry
{
public ExternalBehavior Asset;
public ExternalBehavior InstanceExternalBehavior()
{
var externalBehavior = Object.Instantiate(Asset);
externalBehavior.name = Asset.name;
externalBehavior.Init();
return externalBehavior;
}
}
private async UniTask<AssetEntry> LoadBehaviorAsset(string behaviorName)
{
var path = string.Format(Constants.AI_ASSET_FORMAT_PATH, behaviorName);
var externalBehavior = await AssetManager.Instance.LoadAssetAsync<ExternalBehavior>(path);
if (externalBehavior == null)
{
DebugUtil.LogError("LoadBehavior.LoadBehavior failed, can not find behavior: {0}", path);
}
return new AssetEntry{Asset = externalBehavior};
}
}
}