private bool OnNumAccumForDemo2(IGEvent inEvent) { bool ret = false; LMEvent_NumAccumForDemo2 realEvt = inEvent as LMEvent_NumAccumForDemo2; int newVal = realEvt.mNumberToAccum + 1; //注意这里异步发给了自己,下一帧就会收到// LMEvent_NumAccumForDemo2 anEvtToMyself = FakeObjPoolMgr.FetchAutoRecycleObj <LMEvent_NumAccumForDemo2>(); anEvtToMyself.mNumberToAccum = newVal; SendEventAsync(anEvtToMyself); //注意这里给M层也发了一份,那边是 DisplayUIForDemo2 等着收// if (X2MBridge.IsValid) { LMEvent_NumAccumForDemo2 anotherEvtToM = FakeObjPoolMgr.FetchAutoRecycleObj <LMEvent_NumAccumForDemo2>(); anotherEvtToM.mNumberToAccum = newVal; //注意这里发送给了M层// X2MBridge.Instance.SendEventAsync(anotherEvtToM); } return(ret); }
public override void OnLogicNodeUpdate(float inDeltaTime) { base.OnLogicNodeUpdate(inDeltaTime); //所有线程都已经启动完成// if (LMDataOcean.mNetThreadStarted && LMDataOcean.mLogicThreadStarted && LMDataOcean.mMainThreadStarted) { mTimeAccumForOnSec += inDeltaTime; if (mTimeAccumForOnSec >= 1.0f) { mTimeAccumForOnSec -= 1.0f; //服务器认为自己可以走一帧了// mServerFrame++; if (X2LBridge.IsValid) { //通知客户端走一帧// LMNEvent_ServerGoOneFrameForDemo3 evt = FakeObjPoolMgr.FetchAutoRecycleObj <LMNEvent_ServerGoOneFrameForDemo3>(); evt.mServerFrame = mServerFrame; X2LBridge.Instance.SendEventAsync(evt); } } } }
public void Start() { /* * --------------------------------- * Demo1逻辑的入口 * 注意这里起到了启动计数逻辑作用 * -------------------------------- */ LMEvent_NumAccumForDemo1 evt = FakeObjPoolMgr.FetchAutoRecycleObj <LMEvent_NumAccumForDemo1>(); evt.mNumberToAccum = 0; X2MBridge.Instance.SendEventAsync(evt); }
/// <summary> /// 内部实现 /// </summary> /// <param name="inStr"></param> /// <param name="inLevel"></param> /// <param name="param"></param> private static void _Log(string inStr, DemoLogLevel inLevel, params object[] param) { if (param != null && param.Length > 0) { inStr = string.Format(inStr, param); } LMEvent_LogToUnity evt = FakeObjPoolMgr.FetchAutoRecycleObj <LMEvent_LogToUnity>(); evt.mLogLevel = inLevel; evt.mLogStr = inStr; X2MBridge.Instance.SendEventAsync(evt); }
public void Start() { /* * --------------------------------- * Demo2逻辑的入口 * 注意这里起到了启动计数逻辑作用 * -------------------------------- */ LMEvent_ShowDisplayUIForDemo2 showUIEvt = FakeObjPoolMgr.FetchAutoRecycleObj <LMEvent_ShowDisplayUIForDemo2>(); X2MBridge.Instance.SendEventAsync(showUIEvt); //开始计数// LMEvent_NumAccumForDemo2 startAccEvt = FakeObjPoolMgr.FetchAutoRecycleObj <LMEvent_NumAccumForDemo2>(); X2LBridge.Instance.SendEventAsync(startAccEvt); }
private bool OnNumAccumForDemo1(IGEvent inEvent) { bool ret = false; LMEvent_NumAccumForDemo1 realEvt = inEvent as LMEvent_NumAccumForDemo1; if (X2LBridge.IsValid) { LMEvent_NumAccumForDemo1 evt = FakeObjPoolMgr.FetchAutoRecycleObj <LMEvent_NumAccumForDemo1>(); evt.mNumberToAccum = realEvt.mNumberToAccum + 1; //注意这里发送给了L层// X2LBridge.Instance.SendEventAsync(evt); LogUtil.Debug("MNumAccSys.OnNumAccum: MFrame {0}, from {1} to {2}", LMDataOcean.mMainThreadFrameCounter, realEvt.mNumberToAccum, evt.mNumberToAccum); } return(ret); }