Exemplo n.º 1
0
        public DebugConsole(GameObject parent)
        {
            Instance = this;

            ConstructUI(parent);

            // append messages that logged before we were set up
            string preAppend = "";

            for (int i = s_preInitMessages.Count - 1; i >= 0; i--)
            {
                var msg = s_preInitMessages[i];
                if (preAppend != "")
                {
                    preAppend += "\r\n";
                }
                preAppend += msg;
            }
            m_textInput.text = preAppend;

            // set up IO

            if (!SaveToDisk)
            {
                return;
            }

            var path = ExplorerCore.EXPLORER_FOLDER + @"\Logs";

            if (!Directory.Exists(path))
            {
                Directory.CreateDirectory(path);
            }

            // clean old log(s)
            var files = Directory.GetFiles(path);

            if (files.Length >= 10)
            {
                var sorted = files.ToList();
                // sort by 'datetime.ToString("u")' will put the oldest ones first
                sorted.Sort();
                for (int i = 0; i < files.Length - 9; i++)
                {
                    File.Delete(files[i]);
                }
            }

            var fileName = "UnityExplorer " + DateTime.Now.ToString("u") + ".txt";

            fileName = ExplorerCore.RemoveInvalidFilenameChars(fileName);

            var stream = File.Create(path + @"\" + fileName);

            s_streamWriter = new StreamWriter(stream)
            {
                AutoFlush = true
            };

            foreach (var msg in AllMessages)
            {
                s_streamWriter.WriteLine(msg);
            }
        }