public void Publish(string ev_name, string group, params object[] parameters) { try { if (RunInLogicThread) { LogSystem.Debug("Publish {0} {1}", ev_name, group); } else { LogicSystem.LogFromLogic("Publish {0} {1}", ev_name, group); } Delegate d; string key = group + '#' + ev_name; if (subscribers_.TryGetValue(key, out d)) { if (null == d) { if (RunInLogicThread) { LogSystem.Error("Publish {0} {1}, Subscriber is null, Remove it", ev_name, group); } else { LogicSystem.LogErrorFromLogic("Publish {0} {1}, Subscriber is null, Remove it", ev_name, group); } subscribers_.Remove(key); } else { d.DynamicInvoke(parameters); } } } catch (Exception ex) { if (RunInLogicThread) { LogSystem.Error("PublishSubscribe.Publish({0},{1}) exception:{2}\n{3}", ev_name, group, ex.Message, ex.StackTrace); } else { LogicSystem.LogErrorFromLogic("PublishSubscribe.Publish({0},{1}) exception:{2}\n{3}", ev_name, group, ex.Message, ex.StackTrace); } } }
public void ProxyPublish(string ev_name, string group, params object[] parameters) { ProxyPublishData arg = new ProxyPublishData(); arg.m_EventName = ev_name; arg.m_Group = group; arg.m_Args = parameters; if (RunInLogicThread) { LogSystem.Debug("ProxyPublish {0} {1}", ev_name, group); } else { LogicSystem.LogFromLogic("ProxyPublish {0} {1}", ev_name, group); } Publish(c_proxy_ev_name, c_proxy_group, arg); }
internal void Init(int resId) { m_SceneResId = resId; LoadSceneData(resId); WorldSystem.Instance.SceneContext.SceneResId = resId; WorldSystem.Instance.SceneContext.IsRunWithRoomServer = (IsPvp || IsMultiPve); m_IsWaitSceneLoad = true; m_IsWaitRoomServerConnect = true; m_IsNoticeException = false; m_IsSuccessEnter = false; Data_Unit unit = m_SceneStaticData.ExtractData(DataMap_Type.DT_Unit, GlobalVariables.GetUnitIdByCampId(NetworkSystem.Instance.CampId)) as Data_Unit; if (null != unit) { m_CameraLookAtX = unit.m_Pos.X; m_CameraLookAtY = unit.m_Pos.Y; m_CameraLookAtZ = unit.m_Pos.Z; } CalculateDropOut(); LogicSystem.LogFromLogic("SceneResource.Init {0}", resId); }
internal void Release() { LogicSystem.LogFromLogic("SceneResource.Release"); }