使用Unity bolt插件可以进行一些简单逻辑开发。本质上相当于把C#接口以图形化的方式进行调用。但是怎么使用协程进行等待呢。经过一些研究,可以使用继承WaitUnit的组件方式进行扩展。下面是具体的操作步骤。
1:等待组件扩展。
经过查找,Bolt已经对WaitForSeconds,WaitUnitl进行封装。查看相关代码,我对WaitUnity进行迭代器扩展,下面是相关代码:
using Bolt;
using Ludiq;
using System.Collections;
[UnitTitle("WaitForCoroutine")]
[UnitShortTitle("WaitCoroutine")]
[UnitOrder(1)]
public class WaitForCoroutine : WaitUnit
{[DoNotSerialize][PortLabel("routine")]public ValueInput routine { get; private set; }protected override void Definition(){base.Definition();routine = ValueInput("routine", default(IEnumerator));Requirement(routine, base.enter);}protected override IEnumerator Await(Flow flow){yield return flow.GetValue<IEnumerator>(routine);yield return base.exit;}
}
2:然后先写一个简单的协程进行测试:
public IEnumerator DoMove(Vector3 endPos){while(Vector3.Distance(transform.position,endPos)>0.1f){yield return null;transform.position = Vector3.Lerp(transform.position, endPos, 0.1f);}Debug.LogError("Finished");}
3:最后附上Bolt的使用流程图
最后愿对使用Bolt插件的小伙伴有所帮助。