這篇文章主要爲大家詳細介紹了Unity3D在Preview中打印日誌的方法,具有一定的參考價值,感興趣的小夥伴們可以參考一下
Preview窗口除了可以預覽模型之外,我們還可以做別的操作。
今天我們來寫個小工具在Preview窗口中顯示調試信息。
可以看下面的圖,同樣是打印 health 和 power 的日誌,在 Preview 中顯示比在 Console 中顯示舒服多了。
左邊是Console中顯示,右邊是Preview窗口中顯示。
創建Editor目錄,然後把下面的腳本放進去
using UnityEngine; using UnityEditor; [CustomEditor(typeof(Object), true)] public class PreviewGUIEditor : Editor { /** Update every 15th frame. */ private const int updateOnFrame = 15; private GUIStyle _previewLabelStyle; private GUIStyle previewLabelStyle { get { if (_previewLabelStyle == null) { _previewLabelStyle = new GUIStyle("PreOverlayLabel") { richText = false, alignment = TextAnchor.UpperLeft, fontStyle = FontStyle.Normal }; // Try to get a fixed-width font on macOS. var font = Font.CreateDynamicFontFromOSFont("Monaco", 12); // Failing that, try to get a fixed-width font on Windows. if (font == null) font = Font.CreateDynamicFontFromOSFont("Lucida Console", 12); // XXX What fixed-width font should I request if we're on Linux? if (font != null) _previewLabelStyle.font = font; // Debug.Log("Fonts: \n" + string.Join("\n", Font.GetOSInstalledFontNames())); } return _previewLabelStyle; } } public override bool HasPreviewGUI() { return Application.isPlaying; } public override bool RequiresConstantRepaint() { // Only repaint on the nth frame. return Application.isPlaying && Time.frameCount % updateOnFrame == 0; } public override void OnPreviewGUI(Rect rect, GUIStyle background) { string str = target.ToString(); GUI.Label(rect, str, previewLabelStyle); } }
在我們需要打印日誌的類裏面 重載ToString()函數,返回需要在preview中輸出的內容。
下面是上面截圖的示例,一個Player類,在ToString()函數中返回了 health 和 power的輸出內容。
using UnityEngine; public class Player : MonoBehaviour { public int health = 10; public int power = 10; // Use this for initialization void Start () { } // Update is called once per frame void Update () { health += 1; power += 2; Debug.LogError("health = "+ health); Debug.LogError("power = "+ power); } public override string ToString() { return "health = " + health+"\n"+ "power = " + power; } }
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持神馬文庫。