使用Bolt无代码设计开发的时候,我们不能简单的认为只需要一个FlowMachine就可以完成所有流程的开发。我们需要不同的模块进行拆分,以便更好的管理和协作。这就需要不同模块之间的通信处理。经过研究与使用,将常用的通信方式总结如下:
1:C#向FlowMachine之间的传递消息:
1:在FlowMachine自定义一个事件,如下图
2:使用CustomEvent.Trigger方法进行触发
CustomEvent.Trigger(subject.gameObject, "Start", subjectIndex);
需要注意的是,在调用该方法的时候,绑定FlowMachine的gameobject及所在层级需要激活,否则事件无法触发。
2:FlowMachine向C#传递消息
1、新建一个C#组件:
using UnityEngine;
public class BoltSubject : MonoBehaviour
{
[SerializeField]
public int subjectCount;
public void SubmitSubject(bool isRight)
{
StartCoroutine( FindObjectOfType<SubjectManager>().DoEffect(isRight));
}
}
2、更新BoltOptions
3、将所在gameobject挂上该组件,并在FlowMachine中使用
3:FlowMachine之间的通信
1、如情况1介绍那样在FlowMachine新建一个事件:
2、在主动触发的FlowMachine进行触发该事件:(注意挂FlowMachine的gameobject及所在层级也需要激活。)
以上就是常用的Bolt常用的事件触发方式,希望对使用Bolt的小伙伴们有所帮助。