Unity Bolt模块间通信

        使用Bolt无代码设计开发的时候,我们不能简单的认为只需要一个FlowMachine就可以完成所有流程的开发。我们需要不同的模块进行拆分,以便更好的管理和协作。这就需要不同模块之间的通信处理。经过研究与使用,将常用的通信方式总结如下:

1:C#向FlowMachine之间的传递消息:

        1:在FlowMachine自定义一个事件,如下图

        Unity Bolt模块间通信_第1张图片

        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().DoEffect(isRight));
    }
}

        2、更新BoltOptions

        Unity Bolt模块间通信_第2张图片

        3、将所在gameobject挂上该组件,并在FlowMachine中使用

        Unity Bolt模块间通信_第3张图片

3:FlowMachine之间的通信

        1、如情况1介绍那样在FlowMachine新建一个事件:

        Unity Bolt模块间通信_第4张图片

        2、在主动触发的FlowMachine进行触发该事件:(注意挂FlowMachine的gameobject及所在层级也需要激活。)

        Unity Bolt模块间通信_第5张图片

以上就是常用的Bolt常用的事件触发方式,希望对使用Bolt的小伙伴们有所帮助。

你可能感兴趣的:(unity,Bolt)