using System.Collections; 
 | 
using System.Collections.Generic; 
 | 
using UnityEngine; 
 | 
using LitJson; 
 | 
using System.IO; 
 | 
using UnityEngine.UI; 
 | 
  
 | 
  
 | 
public class DebugUtility : Singleton<DebugUtility> 
 | 
{ 
 | 
  
 | 
    GameObject debugRoot; 
 | 
  
 | 
    bool m_DebugAccount = false; 
 | 
    public bool debugAccount    // 是否开启debug模式 
 | 
    { 
 | 
        get { return m_DebugAccount; } 
 | 
        private set 
 | 
        { 
 | 
            if (m_DebugAccount != value) 
 | 
            { 
 | 
                m_DebugAccount = value; 
 | 
                // if (m_DebugAccount) 
 | 
                // { 
 | 
                //     RunTimeExceptionUtility.Instance.Init(); 
 | 
                // } 
 | 
            } 
 | 
        } 
 | 
    } 
 | 
  
 | 
    public int debugBranch = -1; 
 | 
    //服务端设置白名单:1.可打开debug模式 2. 可提前登录维护服;缺点需要运维人员配合但安全 
 | 
    //其他参考: 客户端自己设置的debug模式,增加debug文件;缺点:ios无法操作 
 | 
    //          聊天设置分支同时会开启debug模式,优点:任何情况下可以独立操作,不安全但无实质性影响 
 | 
    public bool isWhiteListAccount { get; set; } 
 | 
  
 | 
  
 | 
    public void Init() 
 | 
    { 
 | 
        isWhiteListAccount = false; 
 | 
        if (VersionConfig.Get().debugVersion) 
 | 
        { 
 | 
            debugAccount = true; 
 | 
        } 
 | 
        else 
 | 
        { 
 | 
            var parentDirectory = Directory.GetParent(Application.persistentDataPath); 
 | 
            debugAccount = File.Exists(parentDirectory + "/Debug"); 
 | 
        } 
 | 
  
 | 
        if (LocalSave.GetString("#@#BrancH") != string.Empty) 
 | 
        { 
 | 
            var branch = LocalSave.GetString("#@#BrancH"); 
 | 
            int tmpbranch; 
 | 
            int.TryParse(LocalSave.GetString("#@#BrancH").Substring(1), out tmpbranch); 
 | 
            if (branch.StartsWith("d") && tmpbranch != 0) 
 | 
            { 
 | 
                debugBranch = tmpbranch; 
 | 
                debugAccount = true; 
 | 
            } 
 | 
            else if (branch.StartsWith("r") && tmpbranch != 0) 
 | 
            { 
 | 
                debugBranch = tmpbranch; 
 | 
                debugAccount = false; 
 | 
            } 
 | 
        } 
 | 
  
 | 
        if (debugAccount) 
 | 
        { 
 | 
            if (Application.isMobilePlatform) 
 | 
            { 
 | 
                var parentDirectory = Directory.GetParent(Application.persistentDataPath); 
 | 
                if (File.Exists(parentDirectory + "/Debug")) 
 | 
                { 
 | 
                    var content = File.ReadAllText(parentDirectory + "/Debug"); 
 | 
                    if (!string.IsNullOrEmpty(content)) 
 | 
                    { 
 | 
                        var json = JsonMapper.ToObject<DebugBranch>(File.ReadAllText(parentDirectory + "/Debug")); 
 | 
                        debugBranch = json.branch; 
 | 
                    } 
 | 
                } 
 | 
            } 
 | 
        } 
 | 
  
 | 
  
 | 
    } 
 | 
  
 | 
  
 | 
    public void CreateDebugRoot() 
 | 
    { 
 | 
        if (debugRoot == null) 
 | 
        { 
 | 
            var prefab = BuiltInLoader.LoadPrefab("UIRootDebug"); 
 | 
            debugRoot = GameObject.Instantiate(prefab); 
 | 
            MonoBehaviour.DontDestroyOnLoad(debugRoot); 
 | 
            debugRoot.name = "UIRootDebug"; 
 | 
        } 
 | 
    } 
 | 
  
 | 
  
 | 
    public class DebugBranch 
 | 
    { 
 | 
        public int branch = -1; 
 | 
    } 
 | 
  
 | 
} 
 |