1.创建空物体Root,创建RootContextView挂载上去,用来实例化Context。
//RootContextView.cs文件
using strange.extensions.context.impl;
using UnityEngine;
public class RootContextView : ContextView {
void Awake() {
//创建Context
this.context = new DemoContext (this);
}
}2.创建DemoContext类,用来绑定
using UnityEngine;
using strange.extensions.context.impl;//MVCSContext
using strange.extensions.context.api;//ContextEvent.START
public class DemoContext : MVCSContext {
public DemoContext(MonoBehaviour view):base(view){}
protected override void mapBindings ()
{
//Binding Todo
//绑定启动命令,此方法完成后,就会自动分发ContextEvent.START命令
commandBinder.Bind (ContextEvent.START).To<StartCommand> ().Once();
}
}3.创建StartCommand类,作为启动命令。
using UnityEngine;
using strange.extensions.command.impl;
public class StartCommand : Command {
public override void Execute ()
{
Debug.Log ("Hello World!");
}
}4.解说一下,创建RootContextView继承自ContextView(MonoBehaviour的子类),挂载到场景中,自动实例化调用Awake()方法,实例化DemoContext类,DemoContext类继承自MVCSContext,里面重写了mapBindings()方法在Context创建时自动调用,用于绑定关系,最后绑定启动命令到StartCommand,在绑定结束后就会调用这个事件,调用StartCommand的Execute()方法,游戏的起点。