コード例 #1
0
ファイル: UIModular.cs プロジェクト: firefishes/ShipDock
        public override void Init()
        {
            base.Init();

            ShipDockApp app = ShipDockApp.Instance;

            Datas = app.Datas;
            ABs   = app.ABs;
            UIs   = app.UIs;

            if (mUI == default)
            {
                GameObject prefab = ABs.Get(ABName, UIAssetName);
                GameObject ui     = UnityEngine.Object.Instantiate(prefab, UIs.UIRoot.MainCanvas.transform);

                ParamNotice <MonoBehaviour> notice = Pooling <ParamNotice <MonoBehaviour> > .From();

                int id = ui.GetInstanceID();
                id.Broadcast(notice);

                mUI = (T)notice.ParamValue;
                notice.ToPool();
            }
            else
            {
            }

            UILayer layer = mUI.GetComponent <UILayer>();

            SetUIParent(ref layer);
            mUI.Add(UIModularHandler);
        }
コード例 #2
0
ファイル: ShipDockGame.cs プロジェクト: firefishes/ShipDock
        private void CreateShipDockApp(ref IUIRoot UIRoot)
        {
            ShipDockApp.Instance.InitUIRoot(UIRoot);
#if RELEASE
            Debug.unityLogger.logEnabled = false;//编译发布版时关闭日志
#endif
            ShipDockApp.StartUp(m_FrameRate, OnShipDockStart);
        }
コード例 #3
0
ファイル: ShipDockGame.cs プロジェクト: firefishes/ShipDock
        /// <summary>
        /// 添加服务容器解析器配置
        /// </summary>
        private void AddResolvableConfigs()
        {
            ShipDockApp app = ShipDockApp.Instance;

            IResolvableConfig[] resolvableConfs = GetServerConfigs();
            app.Servers.AddResolvableConfig(resolvableConfs);

            AssertShipDockGameInit(1);//Assert IoC
        }
コード例 #4
0
ファイル: ShipDockGame.cs プロジェクト: firefishes/ShipDock
        /// <summary>
        /// 初始化IoC服务容器
        /// </summary>
        private void InitServerContainers()
        {
            ShipDockApp app  = ShipDockApp.Instance;
            bool        isOn = m_DevelopSubgroup.startUpIoC;//根据开发参数确定是否启动IoC模块

            Action[]  onInited   = isOn ? new Action[] { AddResolvableConfigs } : default;
            Action[]  onFinished = isOn ? new Action[] { OnServersFinished } : default;
            IServer[] servers    = isOn ? GetGameServers() : default;
            app.StartIoC(servers, MainThreadServerReady, onInited, onFinished);
        }
コード例 #5
0
        public void CommitRelate()
        {
            int         name;
            ShipDockApp app = ShipDockApp.Instance;
            int         max = (ComponentNames != default) ? ComponentNames.Length : 0;

            if (max > 0)
            {
                if (mCompCached == default)
                {
                    mCompCached = new KeyValueList <int, IShipDockComponent>();
                }
                var components = app.Components;
                for (int i = 0; i < max; i++)
                {
                    name = ComponentNames[i];
                    mCompCached[name] = components.RefComponentByName(name);
                }
            }
            max = (DataNames != default) ? DataNames.Length : 0;
            if (max > 0)
            {
                if (mDataCached == default)
                {
                    mDataCached = new KeyValueList <int, IData>();
                }
                var datas = app.Datas;
                for (int i = 0; i < max; i++)
                {
                    name = DataNames[i];
                    mDataCached[name] = datas.GetData <IData>(name);
                }
            }
            max = (ServerNames != default) ? ServerNames.Length : 0;
            if (max > 0)
            {
                if (mServerCached == default)
                {
                    mServerCached = new KeyValueList <string, IServer>();
                }
                string serverName;
                var    servers = app.Servers;
                for (int i = 0; i < max; i++)
                {
                    serverName = ServerNames[i];
                    mServerCached[serverName] = servers.GetServer <IServer>(serverName);
                }
            }
        }
コード例 #6
0
        public override void InitServer()
        {
            base.InitServer();

            ShipDockApp app   = ShipDockApp.Instance;
            var         datas = app.Datas;

            IData[] dataList = DataList;
            int     max      = dataList.Length;

            for (int i = 0; i < max; i++)
            {
                datas.AddData(dataList[i]);
            }
        }
コード例 #7
0
        protected override void Init()
        {
            if (m_EnterDll == default)
            {
                "debug".Log("HotFixerAppEnter EnterDll field must be set not null object.");
                return;
            }

#if ILRUNTIME
            ShipDockApp app = ShipDockApp.Instance;
            //app.SetHotFixSetting(new ILRuntimeHotFix(ShipDockApp.Instance), new T());
            app.InitILRuntime <T>();
            app.ILRuntimeHotFix.Start();
#endif
            base.Init();

            StartHotFixeByAsset(this, m_EnterDll, m_EnterPdb);
        }
コード例 #8
0
ファイル: ShipDockGame.cs プロジェクト: firefishes/ShipDock
        private void OnDestroy()
        {
            m_GameAppEvents.createTestersEvent.RemoveAllListeners();
            m_GameAppEvents.enterGameEvent.RemoveAllListeners();
            m_GameAppEvents.getDataProxyEvent.RemoveAllListeners();
            m_GameAppEvents.getGameServersEvent.RemoveAllListeners();
            m_GameAppEvents.initProfileDataEvent.RemoveAllListeners();
            m_GameAppEvents.getLocalsConfigItemEvent.RemoveAllListeners();
            m_GameAppEvents.getServerConfigsEvent.RemoveAllListeners();
            m_GameAppEvents.initProfileEvent.RemoveAllListeners();
            m_GameAppEvents.serversFinishedEvent.RemoveAllListeners();

            ShipDockApp.Close();
            LogShipDockAppClose();

            m_GameAppEvents.frameworkCloseEvent.Invoke();
            m_GameAppEvents.frameworkCloseEvent.RemoveAllListeners();
        }
コード例 #9
0
        private void Awake()
        {
            ShipDockApp shipDockApp = ShipDockApp.Instance;

            if (shipDockApp != default && m_Labels != default)
            {
                Text     ui;
                TextMesh textMesh;
                string   id, content;
                int      max = m_LanguageIDs.Length;
                for (int i = 0; i < max; i++)
                {
                    id = m_LanguageIDs[i];

                    ui       = i < m_Labels.Length ? m_Labels[i] : default;
                    textMesh = i < m_LabelMeshs.Length ? m_LabelMeshs[i] : default;

                    content = shipDockApp.Locals.Language(id);

                    if (!string.IsNullOrEmpty(id) && ui != default)
                    {
                        ui.text = content;
                    }
                    else
                    {
                    }

                    if (!string.IsNullOrEmpty(id) && textMesh != default)
                    {
                        textMesh.text = content;
                    }
                    else
                    {
                    }

                    SetTextLanguage(i, ref content);
                }
            }
            else
            {
            }
        }