36 lines
1.1 KiB
C#
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};
|
|
}
|
|
}
|
|
} |