Unity 輸出除錯資訊到介面
阿新 • • 發佈:2019-02-14
Unity裡自帶的Debug輸出資訊的功能非常好用, 但是在實機上不那麼好用了, 不能直觀的看見輸出的資訊. 這時就使用把資訊輸出到介面上的方法. 特別是給非開發人員看的時候就非常方便了,下面這樣:
繪製方式用的是自帶的GUI, 使用時首先把指令碼拖到物件, 然後設定GUI Style :
然後在程式碼中這樣使用就可以了.
void Update()
{
MyDebug.Add("MyDebug", "ver 2014-1-29 10:21");
MyDebug.Add("XXX", 0.1F);
}
原始碼:
/// <summary> /// 用於在螢幕上輸出除錯資訊. /// 版本 : 2014-1-29 10:21 /// </summary> public class MyDebug : MonoBehaviour { static List<string> messages = new List<string>(); static List<string> names = new List<string>(); public GUIStyle style = null; public Rect rect; public float IntervalSize = 16; //繪製持續時間(秒) public float ClearTime = 1; float nowTime = 0; void Start() { } void Update() { if(nowTime < ClearTime) nowTime+=Time.deltaTime; else { messages.Clear(); names.Clear(); nowTime = 0; } } void OnGUI() { Display(); } void Display() { for(int i=0;i<names.Count;i++) { GUI.Box(new Rect(0,i*IntervalSize,rect.width,rect.height), names[i] +" : "+messages[i],style); } } public static void Add(string name, string message) { if(names.Contains(name) == false) { names.Add(name); messages.Add(message); } else { for(int i=0;i<names.Count;i++) { if(names[i] == name) { messages[i] = message; break; } } } } public static void Add(string name, object mess) { string message = mess.ToString(); Add(name,message); } public static void Add(string name, bool mess) { string message; if(mess == true) message = mess.ToString()+"~~~~~~~"; else message = mess.ToString()+"....."; Add(name,message); } }