Exemple #1
0
        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);
                }
            }
        }
Exemple #2
0
        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");
 }