コード例 #1
0
ファイル: Loading.cs プロジェクト: jonntd/Xbl
    public static void Close()
    {
        c_Description = "";
        c_Rate        = 0;

        C_MonoSingleton <C_UIMgr> .GetInstance().CloseUI("UI_Loading");
    }
コード例 #2
0
ファイル: C_ResMgr.cs プロジェクト: jonntd/Xbl
        public static T GetAssetBundleFormCache <T>(string resName, string assetBundleFilePath, bool isInstantiate = false, bool isForever = false) where T : UnityEngine.Object
        {
            T result = null;

            try
            {
                C_AssetBundleRef bundle = C_MonoSingleton <C_AssetBundleMgr> .GetInstance().GetAssetBundleRefList(assetBundleFilePath);

                if (bundle != null)
                {
                    result = bundle.LoadAsset <T>(resName);

                    if (isInstantiate && result != null)
                    {
                        result = GameObject.Instantiate(result);
                    }
                }
            }
            catch (Exception e)
            {
                C_DebugHelper.LogError("GetAssetBundleFormCache : " + e);
            }

            return(result);
        }
コード例 #3
0
ファイル: Loading.cs プロジェクト: jonntd/Xbl
    public static void Create(string description = "", float rate = 0)
    {
        c_Description = description;
        c_Rate        = rate;

        C_MonoSingleton <C_UIMgr> .GetInstance().OpenUI("UI_Loading");
    }
コード例 #4
0
    public T LoadAssetBundle_Cache <T>(string resName, string resPath, string resType, string exResPath = "", bool isInstantiate = false, bool isForever = false) where T : UnityEngine.Object
    {
        if (string.IsNullOrEmpty(resName))
        {
            return(null);
        }

        if (string.IsNullOrEmpty(resPath) && !string.IsNullOrEmpty(exResPath))
        {
            int index = exResPath.IndexOf('/');

            resPath = exResPath.Substring(0, (index == -1 ? exResPath.Length : index));
        }

        UnityEngine.Object tempObject = C_MonoSingleton <C_PoolMgr> .GetInstance().Spawn(resName, resType);

        if (tempObject != null)
        {
            return(tempObject as T);
        }

        string assetBundleName = GetAssetBundleName(resName, resPath, resType, exResPath);

        return(C_ResMgr.LoadAssetBundleCache <T>(resName, GetAssetBundleFilePath(assetBundleName), isInstantiate, isForever));
    }
コード例 #5
0
ファイル: DialogBox.cs プロジェクト: jonntd/Xbl
    public static void Create(string title, string content, DialogBoxType type, Action callback1, Action callback2, string oneButtonName, string twoButtonName)
    {
        switch (type)
        {
        case DialogBoxType.OneButton:
            C_MonoSingleton <C_UIMgr> .GetInstance().OpenUI("UI_DialogBox_OneButton", content, callback1, oneButtonName);

            break;

        case DialogBoxType.TwoButton:
            C_MonoSingleton <C_UIMgr> .GetInstance().OpenUI("UI_DialogBox_TwoButton", content, callback1, callback2, oneButtonName, twoButtonName);

            break;

        case DialogBoxType.Tile_OneButton:
            C_MonoSingleton <C_UIMgr> .GetInstance().OpenUI("UI_DialogBox_Title_OneButton", title, content, callback1, oneButtonName);

            break;

        case DialogBoxType.Tile_TwoButton:
            C_MonoSingleton <C_UIMgr> .GetInstance().OpenUI("UI_DialogBox_Title_TwoButton", title, content, callback1, callback2, oneButtonName, twoButtonName);

            break;
        }
    }
コード例 #6
0
 public void CacheUnload()
 {
     if (--RefCacheCount <= 0 && RefCount <= 0)
     {
         C_MonoSingleton <C_AssetBundleMgr> .GetInstance().ForceCacheUnload(this);
     }
 }
コード例 #7
0
    protected virtual void onRealtimeUpdate(float deltaTime)
    {
        if (m_CurNetworkData != null)
        {
            m_CurNetworkData.Timeout -= deltaTime;

            if (m_CurNetworkData.Timeout <= 0)
            {
                m_CurNetworkData.Callback("");
                m_CurNetworkData = null;
            }
        }

        if (m_CurNetworkData == null && m_NetworkDataList.Count > 0)
        {
            m_CurNetworkData = m_NetworkDataList[0];
            m_NetworkDataList.RemoveAt(0);

            if (m_CurCoroutine != null)
            {
                C_MonoSingleton <C_GameFramework> .GetInstance().StopCoroutine(m_CurCoroutine);
            }

            //开始请求数据
            m_CurCoroutine = C_MonoSingleton <C_GameFramework> .GetInstance().StartCoroutine(GetResponse(m_CurNetworkData));
        }
    }
コード例 #8
0
ファイル: YBSceneLoadingMgr.cs プロジェクト: jonntd/Xbl
 public void OpenUI(string uiName)
 {
     if (!C_MonoSingleton <C_UIMgr> .GetInstance().IsOpenedUI(uiName))
     {
         C_MonoSingleton <C_UIMgr> .GetInstance().OpenUI(uiName);
     }
     _UI_StoryLoading = FindObjectOfType <UI_StoryLoading>();
 }
コード例 #9
0
ファイル: TitleMoudleMgr.cs プロジェクト: jonntd/Xbl
 private void GamePauseAction()
 {
     if (mGamePauseAction != null)
     {
         mGamePauseAction();
     }
     C_MonoSingleton <C_UIMgr> .GetInstance().OpenUI(UI_StoryPause, new System.Action(StoryGoMainCityAction), mGameContinueAction);
 }
コード例 #10
0
ファイル: TitleMoudleMgr.cs プロジェクト: jonntd/Xbl
    public void OpenStoryUI()
    {
        C_MonoSingleton <C_UIMgr> .GetInstance().CloseUI(UI_StoryTitle);

        mGameGoMainCityAction = null;
        mGameContinueAction   = null;
        mGamePauseAction      = null;
        C_MonoSingleton <C_UIMgr> .GetInstance().OpenUI(UI_StoryTitle, new System.Action(StoryPauseAction));
    }
コード例 #11
0
ファイル: AudioMgr.cs プロジェクト: jonntd/Xbl
    public static void PlaySoundEffect(string name)
    {
        if (string.IsNullOrEmpty(name))
        {
            return;
        }

        C_MonoSingleton <C_AudioMgr> .GetInstance().PlayClipOneShot(C_Singleton <GameResMgr> .GetInstance().LoadResource_Audio_Effect(name));
    }
コード例 #12
0
ファイル: TitleMoudleMgr.cs プロジェクト: jonntd/Xbl
    public void OpenGameUI(System.Action GoMainCityAction = null, System.Action PauseAction = null, System.Action ContinueAction = null)
    {
        C_MonoSingleton <C_UIMgr> .GetInstance().CloseUI(UI_StoryTitle);

        mGameGoMainCityAction = GoMainCityAction;
        mGameContinueAction   = ContinueAction;
        mGamePauseAction      = PauseAction;
        C_MonoSingleton <C_UIMgr> .GetInstance().OpenUI(UI_StoryTitle, new System.Action(GamePauseAction));
    }
コード例 #13
0
ファイル: GameStageHotUpdateMgr.cs プロジェクト: jonntd/Xbl
    void Update()
    {
        if (m_StageDownloadList.Count > 0)
        {
            if (m_StageDownloadList[0].TotalDownloadLength != 0)
            {
                c_FillAmount = m_StageDownloadList[0].CurDownloadLength / (float)m_StageDownloadList[0].TotalDownloadLength;

                if (c_FillAmount > m_fMark)
                {
                    c_Percent = "正在安装,请稍后...";
                    c_Desc    = (m_StageDownloadList[0].TotalDownloadLength / 1048576) + "MB / " + (m_StageDownloadList[0].TotalDownloadLength / 1048576) + "MB";
                }
                else
                {
                    if (c_FillAmount != 0)
                    {
                        c_Percent = (c_FillAmount * 100).ToString("F2") + "%";
                    }

                    c_Desc = (m_StageDownloadList[0].CurDownloadLength / 1048576) + "MB / " + (m_StageDownloadList[0].TotalDownloadLength / 1048576) + "MB";
                }
            }

            m_StageDownloadList[0].OnUpdate();

            if (m_StageDownloadList[0].DownloadState == 2)
            {
                m_bDownloading = false;

                //一定要这么做,先移除下载列表,再更新UI
                string stageName = m_StageDownloadList[0].StageName;

                m_StageDownloadList.RemoveAt(0);

                if (m_StageDownloadList.Count == 0)
                {
                    C_MonoSingleton <C_UIMgr> .GetInstance().CloseUI("UI_StageDownload");
                }

                C_Singleton <GameResMgr> .GetInstance().InitMainAssetBundleManifest();

                //一定要先处理数据再刷新界面,如果数据没有刷新,会引发BUG
                // C_Singleton<StageMgr>.GetInstance().RefreshUITag(stageName);
            }
            else
            {
                if (!m_bDownloading)
                {
                    m_bDownloading = true;

                    m_StageDownloadList[0].StartDownload();
                }
            }
        }
    }
コード例 #14
0
        protected void InitCoreSys()
        {
            C_Singleton <C_TimerMgr> .CreateInstance();

            C_Singleton <C_GameStateCtrl> .CreateInstance();

            C_MonoSingleton <C_AudioMgr> .GetInstance();

            C_MonoSingleton <C_UIMgr> .GetInstance();
        }
コード例 #15
0
    public static void Create(string content)
    {
        string strContent = C_Localization.GetLocalization(content);

        if (string.IsNullOrEmpty(strContent))
        {
            return;
        }

        C_MonoSingleton <C_UIMgr> .GetInstance().OpenUI("UI_Tips", content);
    }
コード例 #16
0
        public C_AsyncAssetBundleLoader(string resName, string assetBundleFilePath, List <string> dependenciesFilePathList, Action <T> callback, bool isInstantiate, bool isForever)
        {
            m_strResName               = resName;
            m_strAssetBundleFilePath   = assetBundleFilePath;
            m_DependenciesFilePathList = dependenciesFilePathList;
            m_Callback      = callback;
            m_IsInstantiate = isInstantiate;
            m_IsForever     = isForever;

            C_MonoSingleton <C_GameFramework> .GetInstance().StartCoroutine(ExecuteLoader());
        }
コード例 #17
0
ファイル: GameStageHotUpdateMgr.cs プロジェクト: jonntd/Xbl
    private void ExecuteDownloadStageHotUpdate(string stageName)
    {
        //临时办法
        stageName = c_AnyStage;

        foreach (GameStageHotUpdate stageHotUpdate in m_StageDownloadList)
        {
            if (stageHotUpdate.StageName == stageName)
            {
                if (stageHotUpdate.DownloadState == 0)
                {
                    stageHotUpdate.StartDownload();

                    C_MonoSingleton <C_UIMgr> .GetInstance().OpenUI("UI_StageDownload");

                    StartCheckDownload();
                }

                return;
            }
        }

        string serverStageConfig        = GetServerStageConfig(stageName);
        List <HotUpdateItem> serverList = GameHotUpdateMgr.ParseHotUpdateConfig(serverStageConfig);

        string localStageConfig        = GetLocalStageConfig(stageName);
        List <HotUpdateItem> localList = GameHotUpdateMgr.ParseHotUpdateConfig(localStageConfig);

        List <HotUpdateItem> list = new List <HotUpdateItem>();

        for (int i = 0; i < serverList.Count; i++)
        {
            for (int j = 0; j < localList.Count; j++)
            {
                if (serverList[i].Name == localList[j].Name)
                {
                    break;
                }
            }

            list.Add(serverList[i]);
        }

        if (list.Count > 0)
        {
            m_StageDownloadList.Add(new GameStageHotUpdate(stageName, list));

            C_MonoSingleton <C_UIMgr> .GetInstance().OpenUI("UI_StageDownload");

            StartCheckDownload();
        }
    }
コード例 #18
0
ファイル: C_SceneLoader.cs プロジェクト: jonntd/Xbl
 public C_SceneLoader(string sceneName, LoadSceneMode loadSceneMode, string mainscene = "")
 {
     if (!string.IsNullOrEmpty(sceneName))
     {
         int end = sceneName.LastIndexOf('.');
         sceneName      = sceneName.Substring(0, (end == -1 ? sceneName.Length : end));
         _LoadSceneName = sceneName;
         //SceneManager.sceneLoaded -= OnSceneLoaded;
         //SceneManager.sceneLoaded += OnSceneLoaded;
         _LoadOver            = false;
         _MainActiveSceneName = mainscene;
         C_MonoSingleton <C_GameFramework> .GetInstance().StartCoroutine(Execute(sceneName, loadSceneMode));
     }
 }
コード例 #19
0
ファイル: SpeechSystemMgr.cs プロジェクト: jonntd/Xbl
    private void DoneScore(bool pass, float rate)
    {
        AudioManager.Instance.SetPlayerSoundVolume(_AudioVoumle);
        AudioManager.Instance.StopEffectByKey(_AudioEffectName);
        ClearUI();
        if (_RecordOverCallback != null)
        {
            _RecordOverCallback(pass);
            _RecordOverCallback = null;
        }
#if UNITY_IOS || UNITY_ANDROID
        C_MonoSingleton <GameHelper> .GetInstance().SetMuteModePlay();
#endif
    }
コード例 #20
0
ファイル: C_BaseUI.cs プロジェクト: jonntd/Xbl
        void Awake()
        {
            if (this.transform.parent == null)
            {
                this.transform.SetParent(C_MonoSingleton <C_UIMgr> .GetInstance().transform);
            }

            UICanvas            = this.transform.Find("Canvas").GetComponent <Canvas>();
            UICanvas.renderMode = RenderMode.ScreenSpaceCamera;

            if (UICameraType == Enum_UICameraType.Low)
            {
                UICanvas.worldCamera = C_UIMgr.c_UICameraLow;
            }
            else if (UICameraType == Enum_UICameraType.High)
            {
                UICanvas.worldCamera = C_UIMgr.c_UICameraHigh;
            }

            UICanvas.sortingOrder  = Layer;
            UICanvas.planeDistance = 50;

            CanvasScaler canvasScaler = UICanvas.transform.GetComponent <CanvasScaler>();

            if (canvasScaler != null)
            {
                canvasScaler.uiScaleMode         = CanvasScaler.ScaleMode.ScaleWithScreenSize;
                canvasScaler.referenceResolution = new Vector2(C_GameFramework.c_DesignWidth, C_GameFramework.c_DesignHeight);
                if (UICanvasScaler == Enum_UICanvasScaler.Nomal)
                {
                    canvasScaler.matchWidthOrHeight = C_UIMgr.c_Match;
                }
                else if (UICanvasScaler == Enum_UICanvasScaler.Height)
                {
                    canvasScaler.matchWidthOrHeight = 1.0f;
                }
                else
                {
                    canvasScaler.matchWidthOrHeight = 0f;
                }
            }

            m_MainLayer = UICanvas.transform.Find("MainLayer");

            Localization();

            C_MonoSingleton <C_GameFramework> .GetInstance().onRealtimeUpdate += onRealtimeUpdate;

            onInit();
        }
コード例 #21
0
ファイル: YBSceneLoadingMgr.cs プロジェクト: jonntd/Xbl
 private void NextStep()
 {
     if (m_SceneQueue.Count > 0)
     {
         C_MonoSingleton <C_SceneMgr> .GetInstance().LoadScene(m_SceneQueue.Dequeue(), "", () =>
         {
             NextStep();
         }, true, LoadSceneMode.Additive, _MainSceneName);
     }
     else
     {
         LoadCompelete();
     }
 }
コード例 #22
0
ファイル: YBSceneLoadingMgr.cs プロジェクト: jonntd/Xbl
 private void UnLoadNextStep()
 {
     if (m_UnloadSceneQueue.Count > 0)
     {
         C_MonoSingleton <C_SceneMgr> .GetInstance().UnloadSceneAsync(m_UnloadSceneQueue.Dequeue(), "", () =>
         {
             UnLoadNextStep();
         });
     }
     else
     {
         NextStep();
     }
 }
コード例 #23
0
ファイル: GameConfig.cs プロジェクト: jonntd/Xbl
    public static void Load()
    {
        string strData = C_MonoSingleton <C_DataMgr> .GetInstance().LoadData(Name);

        if (!string.IsNullOrEmpty(strData))
        {
            AppVersion     = C_Json.GetJsonKeyString(strData, "AppVersion");
            ResVersion     = C_Json.GetJsonKeyString(strData, "ResVersion");
            LogState       = C_Json.GetJsonKeyInt(strData, "LogState");
            LocalResources = C_Json.GetJsonKeyInt(strData, "LocalResources");
            AutoTest       = C_Json.GetJsonKeyInt(strData, "AutoTest");
            HYJJ_Test      = C_Json.GetJsonKeyInt(strData, "HYJJ_Test");
        }
    }
コード例 #24
0
ファイル: C_ResMgr.cs プロジェクト: jonntd/Xbl
        public static void AsyncLoadResource <T>(string resName, string resPath, Action <T> callback) where T : UnityEngine.Object
        {
            if (callback == null)
            {
                return;
            }

            if (string.IsNullOrEmpty(resName) || string.IsNullOrEmpty(resPath))
            {
                callback(null);
                return;
            }

            C_MonoSingleton <C_GameFramework> .GetInstance().StartCoroutine(ExecuteAsyncLoadResource <T>(C_String.DeleteExpandedName(resPath + resName), callback));
        }
コード例 #25
0
ファイル: SceneLoadingMgr.cs プロジェクト: jonntd/Xbl
    private void StartUnLoad()
    {
        _Isloading = true;

        _Action = delegate
        {
            C_MonoSingleton <C_SceneMgr> .GetInstance().UnloadSceneAsync(m_UnloadSceneQueue.Dequeue(), "StageLoading", () =>
            {
                //NextStep();
                UnLoadNextStep();
            });
        };
        _Action();
        _StartPreloadRes = false;
    }
コード例 #26
0
ファイル: C_ResMgr.cs プロジェクト: jonntd/Xbl
        public static T LoadAssetBundle <T>(string resName, string assetBundleFilePath, List <string> dpsList, bool isInstantiate = false, bool isForever = false) where T : UnityEngine.Object
        {
            if (string.IsNullOrEmpty(resName) || string.IsNullOrEmpty(assetBundleFilePath))
            {
                return(null);
            }

            T result = null;

            try
            {
                C_AssetBundleRef[] abs = new C_AssetBundleRef[dpsList.Count];
                for (int i = 0; i < abs.Length; i++)
                {
                    C_DebugHelper.LogFormat("LoadResource abs[{0}]: {1}", i, dpsList[i]);

                    abs[i] = C_MonoSingleton <C_AssetBundleMgr> .GetInstance().LoadFromFile(dpsList[i], isForever);
                }

                C_AssetBundleRef bundle = C_MonoSingleton <C_AssetBundleMgr> .GetInstance().LoadFromFile(assetBundleFilePath, isForever);

                if (bundle != null)
                {
                    result = bundle.LoadAsset <T>(resName);

                    if (isInstantiate && result != null)
                    {
                        result = GameObject.Instantiate(result);
                    }

                    bundle.AutoUnload();
                }

                for (int i = 0; i < abs.Length; i++)
                {
                    if (abs[i] != null)
                    {
                        abs[i].AutoUnload();
                    }
                }
            }
            catch (Exception e)
            {
                C_DebugHelper.LogError("LoadAssetBundle : " + e);
            }

            return(result);
        }
コード例 #27
0
ファイル: TitleMoudleMgr.cs プロジェクト: jonntd/Xbl
    protected void StoryPauseAction()
    {
        //CutsceneSequencePlayer cutsceneSequencePlayer = GameObject.FindObjectOfType<CutsceneSequencePlayer>();
        //if (cutsceneSequencePlayer !=null)
        //{
        //    Cutscene cutscene = cutsceneSequencePlayer._CurrentCutScene;
        //    if (cutscene != null)
        //    {
        //        cutscene.Pause();
        //    }
        //}

        Time.timeScale = 0;

        C_MonoSingleton <C_UIMgr> .GetInstance().OpenUI(UI_StoryPause, new System.Action(StoryGoMainCityAction), new System.Action(StoryContinueAction));
    }
コード例 #28
0
ファイル: AudioMgr.cs プロジェクト: jonntd/Xbl
    public static void PlayBGM(string name)
    {
        if (string.IsNullOrEmpty(name) && m_strBGM == name)
        {
            return;
        }

        m_strBGM = name;

        C_MonoSingleton <C_AudioMgr> .GetInstance().PlayBGM(C_Singleton <GameResMgr> .GetInstance().LoadResource <AudioClip>(name + ".ogg", "public", "sound", "public/sound/"));

        //C_Singleton<GameResMgr>.GetInstance().AsyncLoadResource_Audio_BGM(name, (AudioClip result) =>
        //{
        //    C_MonoSingleton<C_AudioMgr>.GetInstance().PlayBGM(result);
        //});
    }
コード例 #29
0
ファイル: YBSceneLoadingMgr.cs プロジェクト: jonntd/Xbl
 /// <summary>
 /// 先加载一个loading界面,再开始卸载场景和资源,客户端调用之后,需要对loading界面进行清除
 /// </summary>
 private void StartUnloadWithLoadingScene()
 {
     if (m_SceneQueue.Count > 0)
     {
         C_MonoSingleton <C_SceneMgr> .GetInstance().LoadScene(m_SceneQueue.Dequeue(), "", () =>
         {
             StartUnloadWithLoadingScene();
         }, true, LoadSceneMode.Single, _MainSceneName);
     }
     else
     {
         _LoadingState = LoadingState.unload_ab_only;
         if (!string.IsNullOrEmpty(_UnloadResFile))
         {
             C_MonoSingleton <PreLoadResMgr> .Instance.ForceUnloadABRes(_UnloadResFile);
         }
     }
 }
コード例 #30
0
ファイル: SceneLoadingMgr.cs プロジェクト: jonntd/Xbl
 private void UnLoadNextStep()
 {
     if (m_UnloadSceneQueue.Count > 0)
     {
         C_MonoSingleton <C_SceneMgr> .GetInstance().UnloadSceneAsync(m_UnloadSceneQueue.Dequeue(), "", () =>
         {
             UnLoadNextStep();
         });
     }
     else
     {
         if (!string.IsNullOrEmpty(_PreLoadFile))
         {
             _StartPreloadRes = true;
             C_MonoSingleton <PreLoadResMgr> .Instance.StartLoadRes(_PreLoadFile);
         }
         NextStep();
     }
 }