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); } } } }
private bool OnServerGoOneFrameForDemo3(IGEvent inEvent) { bool ret = false; LMNEvent_ServerGoOneFrameForDemo3 realEvt = inEvent as LMNEvent_ServerGoOneFrameForDemo3; //这里模拟收到了服务器的帧驱动// //注意,如果你真的写好了多线程自动回收对象池的话,这个地方是不能直接缓存来自网络线程的对象的// mFakeFrameBuffer.Add(realEvt.mServerFrame, realEvt); return(ret); }