Пример #1
0
        private IEnumerator RequestCopy()
        {
            var v1       = Versions.LoadVersion(_savePath + Versions.Filename);
            var basePath = GetStreamingAssetsPath() + "/";
            var request  = UnityWebRequest.Get(basePath + Versions.Filename);
            var path     = _savePath + Versions.Filename + ".tmp";

            request.downloadHandler = new DownloadHandlerFile(path);
            yield return(request.SendWebRequest());

            if (string.IsNullOrEmpty(request.error))
            {
                var v2 = Versions.LoadVersion(path);
                if (v2 > v1)
                {
                    var mb = UIDialogue.Show("提示", "是否将资源解压到本地?", "解压", "跳过");
                    yield return(mb);

                    _step = mb.isOk ? EStep.Coping : EStep.Versions;
                }
                else
                {
                    Versions.LoadVersions(path);
                    _step = EStep.Versions;
                }
            }
            else
            {
                _step = EStep.Versions;
            }
            request.Dispose();
        }
Пример #2
0
        private void OnApplicationFocus(bool hasFocus)
        {
            if (_reachabilityChanged || _step == EStep.Wait)
            {
                return;
            }

            if (hasFocus)
            {
                UIDialogue.CloseAll();
                if (_step == EStep.Download)
                {
                    _downloader.Restart();
                }
                else
                {
                    StartUpdate();
                }
            }
            else
            {
                if (_step == EStep.Download)
                {
                    _downloader.Stop();
                }
            }
        }
Пример #3
0
    /// /////////////////////////////////////////////////////////////////////////////////////////////////////////
    ///                              Dialogue  管理
    /// /////////////////////////////////////////////////////////////////////////////////////////////////////////
    public UIDialogue CreateDialogue(string path)
    {
        char[]   seprator = { '/', '\\' };
        string[] paths    = path.Split(seprator, System.StringSplitOptions.RemoveEmptyEntries);
        string   boxName  = paths[paths.Length - 1];

        GameObject prefab = Resources.Load <GameObject>(path);

        if (prefab == null)
        {
            Debug.LogWarning("GUI prefab GUI/" + path + " could not found!");
            return(null);
        }

        GameObject obj = Object.Instantiate(prefab);

        obj.transform.parent           = uiRoot.transform;
        obj.transform.localScale       = Vector3.one;
        obj.transform.localPosition    = Vector3.zero;
        obj.transform.localEulerAngles = Vector3.zero;
        UIDialogue dialog = obj.GetComponent <UIDialogue>();

        m_queDialogue.Enqueue(dialog);
        dialog.Create();
        //WorldManager.Instance.EnableEvent(false);
        return(dialog);
    }
Пример #4
0
        public override void Enter()
        {
            base.Enter();
            UIDialogue dialogueWindow = (UIDialogue)GTWindowManager.Instance.OpenWindow(EWindowID.UIDialogue);

            dialogueWindow.ShowDialogue(StDialogueID, EdDialogueID, IsShowSkip, Finish);
        }
Пример #5
0
 void Start()
 {
     m_uiHealthbar = GetComponentInChildren <Slider>();
     m_getItem     = GetComponentInChildren <UIGetItem>();
     m_dialogue    = GetComponentInChildren <UIDialogue>();
     m_uiGundalf.SetActive(true);
     Cursor.visible = false;
     Time.timeScale = 1;
 }
Пример #6
0
    protected static IEnumerator Close(UIDialogue dialogue, eUIDialogueButtons button, UIDialogeOption option)
    {
        dialogue.mClearQueue = false;
        dialogue.Close();

        yield return(null);

        option.onClose(button, option);
    }
Пример #7
0
 public void DestroyDialogue(UIDialogue dialog)
 {
     //DebugLog.LogWarning("Try to destroy an unmatched DialogGuide");
     if (m_queDialogue.Peek() != dialog)
     {
         return;
     }
     Object.DestroyImmediate(m_queDialogue.Dequeue().gameObject);
     //WorldManager.Instance.EnableEvent(true);
 }
Пример #8
0
 public void Clear()
 {
     UIDialogue.Show("提示", "清除数据后所有数据需要重新下载,请确认!", "清除").onComplete += id =>
     {
         if (id != UIDialogue.EventId.Ok)
         {
             return;
         }
         OnClear();
     };
 }
Пример #9
0
        public void OnReachablityChanged(NetworkReachability reachability)
        {
            if (_step == EStep.Wait)
            {
                return;
            }

            _reachabilityChanged = true;
            if (_step == EStep.Download)
            {
                _downloader.Stop();
            }

            if (reachability == NetworkReachability.NotReachable)
            {
                UIDialogue.Show("提示!", "找不到网络,请确保手机已经联网", "确定", "退出").onComplete += delegate(UIDialogue.EventId id)
                {
                    if (id == UIDialogue.EventId.Ok)
                    {
                        if (_step == EStep.Download)
                        {
                            _downloader.Restart();
                        }
                        else
                        {
                            StartUpdate();
                        }
                        _reachabilityChanged = false;
                    }
                    else
                    {
                        Quit();
                    }
                };
            }
            else
            {
                if (_step == EStep.Download)
                {
                    _downloader.Restart();
                }
                else
                {
                    StartUpdate();
                }
                _reachabilityChanged = false;
                UIDialogue.CloseAll();
            }
        }
Пример #10
0
 public void StartDialogue(Character player)
 {
     if (dialogue != null && dialogueGo == null)
     {
         UIDialogue dialogueGo = UIManager.Instance.BuildUIElement(
             new UIDialogueStrategy(dialogue.Current),
             player.transform.position
             + player.transform.forward
             + player.transform.right
             + new Vector3(0, 1, 0)).GetComponent <UIDialogue>();
         player.MovementModule.Enabled = false;
         dialogueGo.Attach(dialogue);
         dialogueGo.LookAtCamera(7);
         dialogueGo.transform.localScale = new Vector3(0.01f, 0.01f, 0.01f);
     }
 }
    void Start()
    {
        player             = GameObject.Find("Player");
        moveController     = this.GetComponent <PlatformerCharacter2D> ();
        clickToTalk        = transform.Find("ClickToTalk").gameObject;
        uiDialogue         = GameObject.Find("Canvas").GetComponent <UIDialogue>();
        audioSource        = GetComponent <AudioSource>();
        dialogueDict       = createDictionaryDialogue(dialogueIDs, dialogueRecordings);
        playerDialogueDict = createDictionaryDialogue(playerDialogueIDs, playerDialogueRecordings);
        parseDialogue();

        if (clearEventsOnStart)
        {
            File.WriteAllText(UnityEditor.AssetDatabase.GetAssetPath(localEvents), "");
            UnityEditor.EditorUtility.SetDirty(localEvents);

            File.WriteAllText(UnityEditor.AssetDatabase.GetAssetPath(globalEvents), "");
            UnityEditor.EditorUtility.SetDirty(globalEvents);
            UnityEditor.AssetDatabase.Refresh();
        }
    }
Пример #12
0
 public UIDialogue()
 {
     instance = this;
 }
Пример #13
0
 private void OnDestroy()
 {
     UIDialogue.Dispose();
 }
Пример #14
0
 public void setDialogueWindow(UIDialogue uIDialogue)
 {
     _uIDialogue = uIDialogue;
 }
Пример #15
0
        private IEnumerator RequestVersions()
        {
            OnMessage("正在获取版本信息...");
            if (Application.internetReachability == NetworkReachability.NotReachable)
            {
                var mb = UIDialogue.Show("提示", "请检查网络连接状态", "重试", "退出");
                yield return(mb);

                if (mb.isOk)
                {
                    StartUpdate();
                }
                else
                {
                    Quit();
                }
                yield break;
            }

            var request = UnityWebRequest.Get(GetDownloadURL(Versions.Filename));

            request.downloadHandler = new DownloadHandlerFile(_savePath + Versions.Filename);
            yield return(request.SendWebRequest());

            var error = request.error;

            request.Dispose();
            if (!string.IsNullOrEmpty(error))
            {
                var mb = UIDialogue.Show("提示", string.Format("获取服务器版本失败:{0}", error), "重试", "退出");
                yield return(mb);

                if (mb.isOk)
                {
                    StartUpdate();
                }
                else
                {
                    Quit();
                }
                yield break;
            }
            try
            {
                _versions = Versions.LoadVersions(_savePath + Versions.Filename, true);
                if (_versions.Count > 0)
                {
                    PrepareDownloads();
                    _step = EStep.Prepared;
                }
                else
                {
                    OnComplete();
                }
            }
            catch (Exception e)
            {
                Debug.LogException(e);
                UIDialogue.Show("提示", "版本文件加载失败", "重试", "退出").onComplete +=
                    delegate(UIDialogue.EventId id)
                {
                    if (id == UIDialogue.EventId.Ok)
                    {
                        StartUpdate();
                    }
                    else
                    {
                        Quit();
                    }
                };
            }
        }
Пример #16
0
        private IEnumerator Checking()
        {
            if (!Directory.Exists(_savePath))
            {
                Directory.CreateDirectory(_savePath);
            }

            //if (_step == EStep.Wait)
            //{
            //    yield return RequestVFS();
            //    _step = EStep.Copy;
            //}

            _step = EStep.Copy;

            if (_step == EStep.Copy)
            {
                yield return(RequestCopy());
            }

            if (_step == EStep.Coping)
            {
                var path     = _savePath + Versions.Filename + ".tmp";
                var versions = Versions.LoadVersions(path);
                var basePath = GetStreamingAssetsPath() + "/";
                yield return(UpdateCopy(versions, basePath));

                _step = EStep.Versions;
            }

            if (_step == EStep.Versions)
            {
                yield return(RequestVersions());
            }

            if (_step == EStep.Prepared)
            {
                OnMessage("正在检查版本信息...");
                var totalSize = _downloader.size;
                if (totalSize > 0)
                {
                    var tips = string.Format("发现内容更新,总计需要下载 {0} 内容", Downloader.GetDisplaySize(totalSize));
                    var mb   = UIDialogue.Show("提示", tips, "下载", "退出");
                    yield return(mb);

                    if (mb.isOk)
                    {
                        _downloader.StartDownload();
                        _step = EStep.Download;
                    }
                    else
                    {
                        Quit();
                    }
                }
                else
                {
                    OnComplete();
                }
            }
        }
Пример #17
0
 public void setDialogueWindow(UIDialogue dialogueWindow)
 {
     _dialogueWindow = dialogueWindow;
 }