通过 .value
获取 BBParameter
黑板值,可以解决 BBParameter<T>
找不到方法的问题
例1
出错代码:
using NodeCanvas.Framework;
using ParadoxNotion.Design;
using UnityEngine;
using UnityEngine.Playables;
namespace NodeCanvas.Tasks.Actions
{
[Name("Wait Until Timeline Finished")]
[Category("Timeline")]
public class WaitUntilTimelineFinished : ActionTask
{
[RequiredField]
public BBParameter<GameObject> playableDirectorOwner;
private PlayableDirector playableDirector = playableDirectorOwner.GetComponent<PlayableDirector>();
private double duration;
protected override string info
{
get {
return "Wait Until Timeline Finished"; }
}
protected override void OnExecute()
{
// 如果没有 playable asset,说明没有 timeline 可以播放,那么直接返回
if (playableDirector.playableAsset == null)
{
EndAction();
return;
}
else
{
duration = playableDirector.duration;
}
}
protected override void OnUpdate()
{
// 如果有 playable asset,等待 timeline 的时长
if (elapsedTime >= duration)
{
EndAction();