中介者模式使用示例
public class SystemMediator : Mediator {
    
}
using UnityEngine;

public class AniSystem : SubSystem
{
    public AniSystem(Mediator mediator) : base(mediator) { }

    public override void Init()
    {
        mMediator.RegistAction("hit", HitAction);
    }

    public void HitAction(object data)
    {
        Debug.Log("收到攻击。播放动画");
    }
}
using UnityEngine;

public class AudioSystem : SubSystem
{

    public AudioSystem(Mediator mediator) : base(mediator) { }

    public override void Init()
    {
        mMediator.RegistAction("hit", HitAction);
    }

    private void HitAction(object data)
    {
        Debug.Log("收到攻击,播放声音");
    }
}
public class GameSystem : SubSystem
{
    public GameSystem(Mediator mediator) : base(mediator) { }

    public override void Init()
    {
        //假装是触发消息
        mMediator.SendMes("hit", 100);
    }
}
using UnityEngine;

public class testMediator : MonoBehaviour {
    
	void Start () {
        SystemMediator ss = new SystemMediator();
        AudioSystem audioSystem = new AudioSystem(ss);
        AniSystem aniSystem = new AniSystem(ss);
        GameSystem gameSystem = new GameSystem(ss);
	}
}


是这样的,我表达的意思就是,游戏模块检测到收到攻击,就发送收到攻击的消息。发送先前,声音和动画模块都注册了这个事件的监听,然后就收到消息就会调用合适的方法。(中介者使用实例


首页 我的博客
粤ICP备17103704号