{"id":1804,"date":"2016-10-14T12:48:14","date_gmt":"2016-10-14T04:48:14","guid":{"rendered":"http:\/\/39.100.100.179\/?p=1804"},"modified":"2018-10-22T14:51:07","modified_gmt":"2018-10-22T06:51:07","slug":"unity%e7%9a%84debug%e5%b0%81%e8%a3%85","status":"publish","type":"post","link":"http:\/\/www.u3d8.com\/?p=1804","title":{"rendered":"Unity\u7684Debug\u5c01\u88c5"},"content":{"rendered":"<p>\u672c\u6559\u7a0b\u5c01\u88c5\u4e86Debug\u7684\u6a21\u5757\uff0c\u5b9e\u73b0\u4e86\u4ee5\u4e0b\u51e0\u79cd\u529f\u80fd<\/p>\n<p>1.\u81ea\u5b9a\u4e49\u6253\u5f00\u5173\u95ed<\/p>\n<p>2.\u81ea\u5b9a\u4e49Tag<\/p>\n<p>3.\u6253\u5370\u65f6\u95f4\u6233<\/p>\n<p>4.\u4fdd\u5b58\u6253\u5370\u81f3\u6587\u4ef6<\/p>\n<p>5.Format<\/p>\n<p>\u4e0a\u4ee3\u7801\uff1a<\/p>\n<p>Debuger\uff1a<\/p>\n<pre class=\"lang:c# decode:true\">using System;\r\nusing System.IO;\r\nusing UnityEngine;\r\nusing System.Reflection;\r\nusing System.Diagnostics;\r\n\r\n\/\/\/ &lt;summary&gt;\r\n\/\/\/ Unity \u7684 Debug \u7684\u5c01\u88c5\u7c7b\r\n\/\/\/ &lt;\/summary&gt;\r\npublic class Debuger\r\n{\r\n    \/\/\/ &lt;summary&gt;\r\n    \/\/\/ \u662f\u5426\u8f93\u51fa\u6253\u5370\r\n    \/\/\/ &lt;\/summary&gt;\r\n    public static bool EnableLog = true;\r\n    \/\/\/ &lt;summary&gt;\r\n    \/\/\/ \u662f\u5426\u663e\u793a\u6253\u5370\u65f6\u95f4\r\n    \/\/\/ &lt;\/summary&gt;\r\n    public static bool EnableTime = true;\r\n    \/\/\/ &lt;summary&gt;\r\n    \/\/\/ \u662f\u5426\u50a8\u5b58\u5230\u6587\u672c\r\n    \/\/\/ &lt;\/summary&gt;\r\n    public static bool EnableSave = false;\r\n    \/\/\/ &lt;summary&gt;\r\n    \/\/\/ \u662f\u5426\u663e\u793a\u5806\u6808\u6253\u5370\u4fe1\u606f\r\n    \/\/\/ &lt;\/summary&gt;\r\n    public static bool EnableStack = true;\r\n    \/\/\/ &lt;summary&gt;\r\n    \/\/\/ \u6253\u5370\u6587\u672c\u4fdd\u5b58\u6587\u4ef6\u5939\u8def\u5f84\r\n    \/\/\/ &lt;\/summary&gt;\r\n    public static string LogFileDir = Application.persistentDataPath + \"\/DebugerLog\/\";\r\n    \/\/\/ &lt;summary&gt;\r\n    \/\/\/ \u6253\u5370\u6587\u672c\u540d\u79f0\r\n    \/\/\/ &lt;\/summary&gt;\r\n    private static string LogFileName = \"\";\r\n    \/\/\/ &lt;summary&gt;\r\n    \/\/\/ \u6253\u5370\u524d\u7f00\r\n    \/\/\/ &lt;\/summary&gt;\r\n    private static string Prefix = \"-&gt; \";\r\n    \/\/\/ &lt;summary&gt;\r\n    \/\/\/ \u6253\u5370\u6587\u672c\u6d41\r\n    \/\/\/ &lt;\/summary&gt;\r\n    private static StreamWriter LogFileWriter = null;\r\n    public static void Log(object message)\r\n    {\r\n        message = \"&lt;color=#00ff00&gt;\" + message + \"&lt;\/color&gt;\";\r\n        bool flag = !Debuger.EnableLog;\r\n        if (!flag)\r\n        {\r\n            string str = Debuger.GetLogTime() + message;\r\n            UnityEngine.Debug.Log(Debuger.Prefix + str, null);\r\n            Debuger.LogToFile(\"[I]\" + str, false);\r\n        }\r\n    }\r\n\r\n    public static void Log(object message, object context)\r\n    {\r\n        message = \"&lt;color=#00ff00&gt;\" + message + \"&lt;\/color&gt;\";\r\n        bool flag = !Debuger.EnableLog;\r\n        if (!flag)\r\n        {\r\n            string str = Debuger.GetLogTime() + message;\r\n            UnityEngine.Debug.Log(Debuger.Prefix + str, (UnityEngine.Object)context);\r\n            Debuger.LogToFile(\"[I]\" + str, false);\r\n        }\r\n    }\r\n\r\n    public static void Log(string tag, object message)\r\n    {\r\n        tag = \"&lt;color=#800080ff&gt;\" + tag + \"&lt;\/color&gt;\";\r\n        message = \"&lt;color=#00ff00&gt;\" + message + \"&lt;\/color&gt;\";\r\n        bool flag = !Debuger.EnableLog;\r\n        if (!flag)\r\n        {\r\n            message = Debuger.GetLogTime(tag, message);\r\n            UnityEngine.Debug.Log(Debuger.Prefix + message, null);\r\n            Debuger.LogToFile(\"[I]\" + message, false);\r\n        }\r\n    }\r\n\r\n    public static void Log(string tag, string format, params object[] args)\r\n    {\r\n        tag = \"&lt;color=#800080ff&gt;\" + tag + \"&lt;\/color&gt;\";\r\n        string message = \"&lt;color=#00ff00&gt;\" + string.Format(format, args) + \"&lt;\/color&gt;\";\r\n        bool flag = !Debuger.EnableLog;\r\n        if (!flag)\r\n        {\r\n            string logText = Debuger.GetLogTime(tag, message);\r\n            UnityEngine.Debug.Log(Debuger.Prefix + logText, null);\r\n            Debuger.LogToFile(\"[I]\" + logText, false);\r\n        }\r\n    }\r\n\r\n    public static void LogWarning(object message)\r\n    {\r\n        message = \"&lt;color=#ffff00ff&gt;\" + message + \"&lt;\/color&gt;\";\r\n        string str = Debuger.GetLogTime() + message;\r\n        UnityEngine.Debug.LogWarning(Debuger.Prefix + str, null);\r\n        Debuger.LogToFile(\"[W]\" + str, false);\r\n    }\r\n\r\n    public static void LogWarning(object message, object context)\r\n    {\r\n        message = \"&lt;color=#ffff00ff&gt;\" + message + \"&lt;\/color&gt;\";\r\n        string str = Debuger.GetLogTime() + message;\r\n        UnityEngine.Debug.LogWarning(Debuger.Prefix + str, (UnityEngine.Object)context);\r\n        Debuger.LogToFile(\"[W]\" + str, false);\r\n    }\r\n\r\n    public static void LogWarning(string tag, object message)\r\n    {\r\n        tag = \"&lt;color=#800080ff&gt;\" + tag + \"&lt;\/color&gt;\";\r\n        message = \"&lt;color=#ffff00ff&gt;\" + message + \"&lt;\/color&gt;\";\r\n        message = Debuger.GetLogTime(tag, message);\r\n        UnityEngine.Debug.LogWarning(Debuger.Prefix + message, null);\r\n        Debuger.LogToFile(\"[W]\" + message, false);\r\n    }\r\n\r\n    public static void LogWarning(string tag, string format, params object[] args)\r\n    {\r\n        tag += \"&lt;color=#800080ff&gt;\" + tag + \"&lt;\/color&gt;\";\r\n        string message = \"&lt;color=#ffff00ff&gt;\" + string.Format(format, args) + \"&lt;\/color&gt;\";\r\n        string logText = Debuger.GetLogTime(tag, string.Format(format, args));\r\n        UnityEngine.Debug.LogWarning(Debuger.Prefix + logText, null);\r\n        Debuger.LogToFile(\"[W]\" + logText, false);\r\n    }\r\n\r\n    public static void LogError(object message)\r\n    {\r\n        message = \"&lt;color=#ff0000ff&gt;\" + message + \"&lt;\/color&gt;\";\r\n        string str = Debuger.GetLogTime() + message;\r\n        UnityEngine.Debug.LogError(Debuger.Prefix + str, null);\r\n        Debuger.LogToFile(\"[E]\" + str, true);\r\n    }\r\n\r\n    public static void LogError(object message, object context)\r\n    {\r\n        message = \"&lt;color=#ff0000ff&gt;\" + message + \"&lt;\/color&gt;\";\r\n        string str = Debuger.GetLogTime() + message;\r\n        UnityEngine.Debug.LogError(Debuger.Prefix + str, (UnityEngine.Object)context);\r\n        Debuger.LogToFile(\"[E]\" + str, true);\r\n    }\r\n\r\n    public static void LogError(string tag, object message)\r\n    {\r\n        tag = \"&lt;color=#800080ff&gt;\" + tag + \"&lt;\/color&gt;\";\r\n        message = \"&lt;color=#ff0000ff&gt;\" + message + \"&lt;\/color&gt;\";\r\n        message = Debuger.GetLogTime(tag, message);\r\n        UnityEngine.Debug.LogError(Debuger.Prefix + message, null);\r\n        Debuger.LogToFile(\"[E]\" + message, true);\r\n    }\r\n\r\n    public static void LogError(string tag, string format, params object[] args)\r\n    {\r\n        tag += \"&lt;color=#800080ff&gt;\" + tag + \"&lt;\/color&gt;\";\r\n        string message = \"&lt;color=#ff0000ff&gt;\" + string.Format(format, args) + \"&lt;\/color&gt;\";\r\n        string logText = Debuger.GetLogTime(tag, string.Format(format, args));\r\n        UnityEngine.Debug.LogError(Debuger.Prefix + logText, null);\r\n        Debuger.LogToFile(\"[E]\" + logText, true);\r\n    }\r\n\r\n\r\n    \/\/\/ &lt;summary&gt;\r\n    \/\/\/ \u83b7\u53d6\u6253\u5370\u65f6\u95f4\r\n    \/\/\/ &lt;\/summary&gt;\r\n    \/\/\/ &lt;param name=\"tag\"&gt;\u89e6\u53d1\u6253\u5370\u4fe1\u606f\u5bf9\u5e94\u7684\u7c7b\u6216\u8005NAME\u5b57\u6bb5\u540d\u79f0&lt;\/param&gt;\r\n    \/\/\/ &lt;param name=\"message\"&gt;&lt;\/param&gt;\r\n    \/\/\/ &lt;returns&gt;&lt;\/returns&gt;\r\n    private static string GetLogTime(string tag, object message)\r\n    {\r\n        string result = \"\";\r\n        bool enableTime = Debuger.EnableTime;\r\n        if (enableTime)\r\n        {\r\n            result = DateTime.Now.ToString(\"HH:mm:ss.fff\") + \" \";\r\n        }\r\n        return result + tag + \"::\" + message;\r\n    }\r\n\r\n    \/\/\/ &lt;summary&gt;\r\n    \/\/\/ \u83b7\u53d6\u6253\u5370\u65f6\u95f4\r\n    \/\/\/ &lt;\/summary&gt;\r\n    \/\/\/ &lt;returns&gt;&lt;\/returns&gt;\r\n    private static string GetLogTime()\r\n    {\r\n        string result = \"\";\r\n        bool enableTime = Debuger.EnableTime;\r\n        if (enableTime)\r\n        {\r\n            result = DateTime.Now.ToString(\"HH:mm:ss.fff\") + \" \";\r\n        }\r\n        return result;\r\n    }\r\n    \/\/\/ &lt;summary&gt;\r\n    \/\/\/ \u5e8f\u5217\u5316\u6253\u5370\u4fe1\u606f\r\n    \/\/\/ &lt;\/summary&gt;\r\n    \/\/\/ &lt;param name=\"message\"&gt;\u6253\u5370\u4fe1\u606f&lt;\/param&gt;\r\n    \/\/\/ &lt;param name=\"EnableStack\"&gt;\u662f\u5426\u5f00\u542f\u5806\u6808\u6253\u5370&lt;\/param&gt;\r\n    private static void LogToFile(string message, bool EnableStack = false)\r\n    {\r\n        bool flag = !Debuger.EnableSave;\r\n        if (!flag)\r\n        {\r\n            bool flag2 = Debuger.LogFileWriter == null;\r\n            if (flag2)\r\n            {\r\n                Debuger.LogFileName = DateTime.Now.GetDateTimeFormats('s')[0].ToString();\r\n                Debuger.LogFileName = Debuger.LogFileName.Replace(\"-\", \"_\");\r\n                Debuger.LogFileName = Debuger.LogFileName.Replace(\":\", \"_\");\r\n                Debuger.LogFileName = Debuger.LogFileName.Replace(\" \", \"\");\r\n                Debuger.LogFileName += \".log\";\r\n                bool flag3 = string.IsNullOrEmpty(Debuger.LogFileDir);\r\n                if (flag3)\r\n                {\r\n                    Debuger.LogFileDir = Application.persistentDataPath + \"\/DebugerLog\/\";\r\n                }\r\n                string path = Debuger.LogFileDir + Debuger.LogFileName;\r\n                try\r\n                {\r\n                    bool flag4 = !Directory.Exists(Debuger.LogFileDir);\r\n                    if (flag4)\r\n                    {\r\n                        Directory.CreateDirectory(Debuger.LogFileDir);\r\n                    }\r\n                    Debuger.LogFileWriter = File.AppendText(path);\r\n                    Debuger.LogFileWriter.AutoFlush = true;\r\n                }\r\n                catch (Exception ex2)\r\n                {\r\n                    Debuger.LogFileWriter = null;\r\n                    UnityEngine.Debug.LogError(\"LogToCache() \" + ex2.Message + ex2.StackTrace, null);\r\n                    return;\r\n                }\r\n            }\r\n            bool flag5 = Debuger.LogFileWriter != null;\r\n            if (flag5)\r\n            {\r\n                try\r\n                {\r\n                    Debuger.LogFileWriter.WriteLine(message);\r\n                    bool flag6 = (EnableStack || Debuger.EnableStack);\r\n                    if (flag6)\r\n                    {\r\n                        Debuger.LogFileWriter.WriteLine(StackTraceUtility.ExtractStackTrace());\r\n                    }\r\n                }\r\n                catch (Exception)\r\n                {\r\n                }\r\n            }\r\n        }\r\n    }\r\n}<\/pre>\n<p>DebugerExtension\uff1a<\/p>\n<pre class=\"lang:c# decode:true\">using System;\r\nusing System.Diagnostics;\r\nusing System.Reflection;\r\n\r\n\/\/\/ &lt;summary&gt;\r\n\/\/\/ \u81ea\u5b9a\u4e49Debuger\u7c7b\u7684\u6269\u5c55\u7c7b\r\n\/\/\/ &lt;\/summary&gt;\r\npublic static class DebugerExtension\r\n{\r\n    \/\/\/ &lt;summary&gt;\r\n    \/\/\/ Debug.Log\u6269\u5c55\uff0c\u7528\u6cd5\u4e0eDebug.Log\u76f8\u7b26\r\n    \/\/\/ &lt;\/summary&gt;\r\n    \/\/\/ &lt;param name=\"obj\"&gt;\u89e6\u53d1\u51fd\u6570\u5bf9\u5e94\u7684\u7c7b&lt;\/param&gt;\r\n    \/\/\/ &lt;param name=\"message\"&gt;\u6253\u5370\u4fe1\u606f&lt;\/param&gt;\r\n    public static void Log(this object obj, string message)\r\n    {\r\n        bool flag = !Debuger.EnableLog;\r\n        if (!flag)\r\n        {\r\n            Debuger.Log(DebugerExtension.GetLogTag(obj), message);\r\n        }\r\n    }\r\n    \/\/\/ &lt;summary&gt;\r\n    \/\/\/ Debug.Log\u6269\u5c55\uff0c\u7528\u6cd5\u4e0eDebug.Log\u76f8\u7b26\r\n    \/\/\/ &lt;\/summary&gt;\r\n    \/\/\/ &lt;param name=\"obj\"&gt;\u89e6\u53d1\u51fd\u6570\u5bf9\u5e94\u7684\u7c7b&lt;\/param&gt;\r\n    \/\/\/ &lt;param name=\"format\"&gt;&lt;\/param&gt;\r\n    \/\/\/ &lt;param name=\"args\"&gt;&lt;\/param&gt;\r\n    public static void Log(this object obj, string format, params object[] args)\r\n    {\r\n        bool flag = !Debuger.EnableLog;\r\n        if (!flag)\r\n        {\r\n            string message = string.Format(format, args);\r\n            Debuger.Log(DebugerExtension.GetLogTag(obj), message);\r\n        }\r\n    }\r\n    \/\/\/ &lt;summary&gt;\r\n    \/\/\/ Debug.LogWarning\u6269\u5c55\uff0c\u7528\u6cd5\u4e0eDebug.LogWarning\u76f8\u7b26\r\n    \/\/\/ &lt;\/summary&gt;\r\n    \/\/\/ &lt;param name=\"obj\"&gt;\u89e6\u53d1\u51fd\u6570\u5bf9\u5e94\u7684\u7c7b&lt;\/param&gt;\r\n    \/\/\/ &lt;param name=\"message\"&gt;\u6253\u5370\u4fe1\u606f&lt;\/param&gt;\r\n    public static void LogWarning(this object obj, string message)\r\n    {\r\n        Debuger.LogWarning(DebugerExtension.GetLogTag(obj), message);\r\n    }\r\n    \/\/\/ &lt;summary&gt;\r\n    \/\/\/ Debug.LogWarning\u6269\u5c55\uff0c\u7528\u6cd5\u4e0eDebug.LogWarning\u76f8\u7b26\r\n    \/\/\/ &lt;\/summary&gt;\r\n    \/\/\/ &lt;param name=\"obj\"&gt;\u89e6\u53d1\u51fd\u6570\u5bf9\u5e94\u7684\u7c7b&lt;\/param&gt;\r\n    \/\/\/ &lt;param name=\"format\"&gt;&lt;\/param&gt;\r\n    \/\/\/ &lt;param name=\"args\"&gt;&lt;\/param&gt;\r\n    public static void LogWarning(this object obj, string format, params object[] args)\r\n    {\r\n        string message = string.Format(format, args);\r\n        Debuger.LogWarning(DebugerExtension.GetLogTag(obj), message);\r\n    }\r\n    \/\/\/ &lt;summary&gt;\r\n    \/\/\/ Debug.LogError\u6269\u5c55\uff0c\u7528\u6cd5\u4e0eDebug.LogError\u76f8\u7b26\r\n    \/\/\/ &lt;\/summary&gt;\r\n    \/\/\/ &lt;param name=\"obj\"&gt;\u89e6\u53d1\u51fd\u6570\u5bf9\u5e94\u7684\u7c7b&lt;\/param&gt;\r\n    \/\/\/ &lt;param name=\"message\"&gt;\u6253\u5370\u4fe1\u606f&lt;\/param&gt;\r\n    public static void LogError(this object obj, string message)\r\n    {\r\n        Debuger.LogError(DebugerExtension.GetLogTag(obj), message);\r\n    }\r\n    \/\/\/ &lt;summary&gt;\r\n    \/\/\/ Debug.LogError\u6269\u5c55\uff0c\u7528\u6cd5\u4e0eDebug.LogError\u76f8\u7b26\r\n    \/\/\/ &lt;\/summary&gt;\r\n    \/\/\/ &lt;param name=\"obj\"&gt;\u89e6\u53d1\u51fd\u6570\u5bf9\u5e94\u7684\u7c7b&lt;\/param&gt;\r\n    \/\/\/ &lt;param name=\"format\"&gt;&lt;\/param&gt;\r\n    \/\/\/ &lt;param name=\"args\"&gt;&lt;\/param&gt;\r\n    public static void LogError(this object obj, string format, params object[] args)\r\n    {\r\n        string message = string.Format(format, args);\r\n        Debuger.LogError(DebugerExtension.GetLogTag(obj), message);\r\n    }\r\n\r\n    \/\/\/ &lt;summary&gt;\r\n    \/\/\/ \u83b7\u53d6\u8c03\u7528\u6253\u5370\u7684\u7c7b\u540d\u79f0\u6216\u8005\u6807\u8bb0\u6709NAME\u7684\u5b57\u6bb5 \r\n    \/\/\/ \u6709NAME\u5b57\u6bb5\u7684\uff0c\u89e6\u53d1\u7c7b\u540d\u79f0\u7528NAME\u5b57\u6bb5\u5bf9\u5e94\u7684\u8d4b\u503c\r\n    \/\/\/ \u6ca1\u6709\u7528\u7c7b\u7684\u540d\u79f0\u4ee3\u66ff\r\n    \/\/\/ &lt;\/summary&gt;\r\n    \/\/\/ &lt;param name=\"obj\"&gt;\u89e6\u53d1Log\u5bf9\u5e94\u7684\u7c7b&lt;\/param&gt;\r\n    \/\/\/ &lt;returns&gt;&lt;\/returns&gt;\r\n    private static string GetLogTag(object obj)\r\n    {\r\n        FieldInfo field = obj.GetType().GetField(\"NAME\");\r\n        bool flag = field != null;\r\n        string result;\r\n        if (flag)\r\n        {\r\n            result = (string)field.GetValue(obj);\r\n        }\r\n        else\r\n        {\r\n            result = obj.GetType().Name;\r\n        }\r\n        return result;\r\n    }\r\n}<\/pre>\n<p>\u6d4b\u8bd5\u4ee3\u7801\uff1a<\/p>\n<pre class=\"lang:c# decode:true \">\tvoid Start () {\r\n        Debuger.Log(\"\u6d4b\u8bd5\u4ee3\u78011\");\r\n        Debuger.LogWarning(\"\u6d4b\u8bd5\u4ee3\u78012\");\r\n        Debuger.LogError(\"\u6d4b\u8bd5\u4ee3\u78013\");\r\n        Debuger.Log(\"Test\", \"\u6d4b\u8bd5\u4ee3\u78014\");\r\n        Debuger.Log(\"Test\", \"\u6d4b\u8bd5\u4ee3\u7801{0}\", 5);\r\n        this.Log(\"\u6d4b\u8bd5\u4ee3\u78016\");\r\n    }<\/pre>\n<p>\u6d4b\u8bd5\u7ed3\u679c\uff1a<\/p>\n<p><img title=\"Unity\u7684Debug\u5c01\u88c5 - \u7b2c1\u5f20  | u3d8\u6280\u672f\u5206\u4eab\" alt=\"Unity\u7684Debug\u5c01\u88c5 - \u7b2c1\u5f20  | u3d8\u6280\u672f\u5206\u4eab\" loading=\"lazy\" class=\"alignleft size-full wp-image-1807\" src=\"http:\/\/www.u3d8.com\/wp-content\/uploads\/2018\/06\/QQ\u622a\u56fe20181009162138.jpg\" width=\"579\" height=\"297\" srcset=\"http:\/\/www.u3d8.com\/wp-content\/uploads\/2018\/06\/QQ\u622a\u56fe20181009162138.jpg 579w, http:\/\/www.u3d8.com\/wp-content\/uploads\/2018\/06\/QQ\u622a\u56fe20181009162138-300x154.jpg 300w\" sizes=\"(max-width: 579px) 100vw, 579px\" \/><\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>\u5f53\u8f93\u51fa\u6253\u5370\u5185\u5bb9\u540e\uff0c\u6211\u4eec\u901a\u5e38\u4f1a\u53cc\u51fb\u6253\u5370\u4fe1\u606f\uff0c\u60f3\u5b9a\u4f4d\u5230\u6253\u5370\u7684\u4f4d\u7f6e\u3002<\/p>\n<p>\u8fd9\u4e2a\u9700\u6c42\u6211\u4eec\u53ea\u9700\u8981\u628a\u4e24\u4e2a\u811a\u672c\u6253\u6210DLL\u5bfc\u5165\u5230\u5de5\u7a0b\u91cc\uff0c\u5c31\u53ef\u4ee5\u5566\uff01<\/p>\n<p>\u8fd9\u91cc\u63d0\u4f9bDLL\u4e0b\u8f7d\u5730\u5740\uff1a\u94fe\u63a5:\u00a0<a href=\"https:\/\/pan.baidu.com\/s\/18QBSp-ZdE1QRtugAN-gijw\" target=\"_blank\">https:\/\/pan.baidu.com\/s\/18QBSp-ZdE1QRtugAN-gijw<\/a> \u63d0\u53d6\u7801: isrd<\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u672c\u6559\u7a0b\u5c01\u88c5\u4e86Debug\u7684\u6a21\u5757\uff0c\u5b9e\u73b0\u4e86\u4ee5\u4e0b\u51e0\u79cd\u529f\u80fd 1.\u81ea\u5b9a\u4e49\u6253\u5f00\u5173\u95ed 2.\u81ea\u5b9a\u4e49 &hellip; <a href=\"http:\/\/www.u3d8.com\/?p=1804\">\u7ee7\u7eed\u9605\u8bfb <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[23],"tags":[368,367],"_links":{"self":[{"href":"http:\/\/www.u3d8.com\/index.php?rest_route=\/wp\/v2\/posts\/1804"}],"collection":[{"href":"http:\/\/www.u3d8.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/www.u3d8.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/www.u3d8.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/www.u3d8.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=1804"}],"version-history":[{"count":4,"href":"http:\/\/www.u3d8.com\/index.php?rest_route=\/wp\/v2\/posts\/1804\/revisions"}],"predecessor-version":[{"id":1810,"href":"http:\/\/www.u3d8.com\/index.php?rest_route=\/wp\/v2\/posts\/1804\/revisions\/1810"}],"wp:attachment":[{"href":"http:\/\/www.u3d8.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=1804"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/www.u3d8.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=1804"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/www.u3d8.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=1804"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}