//Log text in given color or default to white public static void Log(object _obj, string _color = "ffffffff", string _panel = "Default") { if (Debug == false) { return; } //Test if appropriate color has been given if (_color == null || _color.Length != 8) { //Set color to white _color = "ffffffff"; } //check if panel is good if (_panel == null) { //set panel to default _panel = "Default"; } //find _chatPanel with _panel name then add text to it DebugBox _chatPanel = FindUIPanel(_panel); _chatPanel.AddText(_obj.ToString(), _color); }
//set the panel's writeToDisk on/off public static void SetPanelWriteToDisk(string _panel, bool _writeToDisk) { DebugBox temp = null; if (PanelExistTest(FindUIPanel(_panel, true), "Toggle UI Write to disk", out temp)) { temp.SetWriteToDisk(_writeToDisk); } }
//clear text of a panel UI public static void ClearUIPanel(string _panel) { DebugBox temp = null; if (PanelExistTest(FindUIPanel(_panel, true), "Clear UI", out temp)) { temp.ClearText(); } }
//set the panel UI on/off public static void SetUIPanelEnabled(string _panel, bool _enabled) { DebugBox temp = null; if (PanelExistTest(FindUIPanel(_panel, true), "Toggle UI", out temp)) { temp.SetGUIEnabled(_enabled); } }
public static void DestroyUIPanel(string _panel) { //grab DebugBox DebugBox temp = null; if (PanelExistTest(FindUIPanel(_panel, true), "Destroy UI", out temp)) { temp.OnApplicationQuit(); GameObject.Destroy(temp.gameObject); m_debugPanels.Remove(_panel); } }
//test if panel exists and return it private static bool PanelExistTest(DebugBox _panel, string _funcCalledFrom, out DebugBox _retDebugBox) { //setup output variable _retDebugBox = null; //check panel isn't null if (_panel != null) { //return true along with panel _retDebugBox = _panel; return(true); } //debug into specific panel that this panel does not exist then return false Log(_panel + " : does not exist during call: " + _funcCalledFrom + ", try creating this panel before you toggle it", null, "Debug Logger Panel"); return(false); }
//try to return existing DebugBox internal static DebugBox FindUIPanel(string _panel = "Default", bool justSearching = false) { DebugBox ret = null; //check if debugPanel exists if (m_debugPanels.TryGetValue(_panel, out ret)) { return(ret); } if (justSearching) { return(null); } //return newly created debug return(CreateUIPanel(new Rect(400, 400, 400, 400), _panel, true, true)); }
//create debug box internal static DebugBox CreateUIPanel(Rect _rect, string _panel = "Default", bool _writeToDisk = true, bool _enabledOnCreation = false) { //check if master object is needed SetupObject(); //create an object and add DebugBox component to it GameObject DebugObj = new GameObject("DebugObj"); GameObject.DontDestroyOnLoad(DebugObj); DebugObj.transform.parent = m_obj.transform; DebugBox ret = DebugObj.AddComponent <DebugBox>(new DebugBox(_panel, _rect, 100, m_currentGUIID++, _writeToDisk)); ret.SetGUIEnabled(_enabledOnCreation); //add panel then return m_debugPanels.Add(_panel, ret); return(ret); }