使用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的使用流程图
文章来源:https://www.toymoban.com/news/detail-649144.html
最后愿对使用Bolt插件的小伙伴有所帮助。文章来源地址https://www.toymoban.com/news/detail-649144.html
到了这里,关于Unity Bolt使用协程等待的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!