這期內(nèi)容當(dāng)中小編將會(huì)給大家?guī)?lái)有關(guān)Unity中怎么實(shí)現(xiàn)日志輸出功能,文章內(nèi)容豐富且以專業(yè)的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。
站在用戶的角度思考問(wèn)題,與客戶深入溝通,找到開州網(wǎng)站設(shè)計(jì)與開州網(wǎng)站推廣的解決方案,憑借多年的經(jīng)驗(yàn),讓設(shè)計(jì)與互聯(lián)網(wǎng)技術(shù)結(jié)合,創(chuàng)造個(gè)性化、用戶體驗(yàn)好的作品,建站類型包括:成都網(wǎng)站設(shè)計(jì)、網(wǎng)站制作、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣、申請(qǐng)域名、虛擬空間、企業(yè)郵箱。業(yè)務(wù)覆蓋開州地區(qū)。
1.日志記錄器接口
public interface ILogger{ void Log(string condition, string stackTrace, UnityEngine.LogType type);}
2.日志文件記錄器
using System;using UnityEngine;using System.IO; public class FileLogger : ILogger{ private readonly string path; /// /// 構(gòu)造方法 /// /// 是否清空原有的日志 public FileLogger(bool isClear = false) { switch (Application.platform) { case RuntimePlatform.Android: path = Path.Combine( Application.persistentDataPath,"log.txt"); break; case RuntimePlatform.WindowsPlayer: path = Path.Combine(Application.dataPath, "log.txt"); break; case RuntimePlatform.WindowsEditor: path = Path.Combine(Application.dataPath, "log.txt"); break; case RuntimePlatform.IPhonePlayer: path = Path.Combine(Application.persistentDataPath, "log.txt"); break; case RuntimePlatform.OSXEditor: break; default: break; } if (isClear) { if (File.Exists(path)) { File.Delete(path); } } } public void Log(string condition, string stackTrace, LogType type) { using (StreamWriter sw = new StreamWriter(path, true, System.Text.Encoding.UTF8)) { string msg = string.Format("[{0}] {1}: {2}\n{3}", GetNowTime(), type, condition, stackTrace); sw.WriteLine(msg); } } #region Tool Method private string GetNowTime() { return DateTime.Now.ToString("yyyy/MM/dd HH:mm:ss"); } #endregion}
3.日志系統(tǒng)管理類
using System;using UnityEngine; public class LogSys{ private static ILogger logger; public static ILogger Logger { get { return logger; } } public bool IsOpen { get { return Debug.unityLogger.logEnabled; } } private LogSys() { } /// /// 初始化 /// /// 日志輸出器 /// 是否開啟日志輸出 public static void Init(ILogger _logger, bool isOpen = true) { Init(isOpen); logger = _logger; Enable(); } public static void Init(bool isOpen = true) { Debug.unityLogger.logEnabled = isOpen; } /// /// 過(guò)濾器 /// /// 需要顯示的日志類型 public static void Filter(LogType logType = LogType.Log) { Debug.unityLogger.filterLogType = logType; } public static void Enable() { if (logger != null) { Application.logMessageReceived += logger.Log; } } public static void Disable() { if (logger != null) { Application.logMessageReceived -= logger.Log; } }}
4.測(cè)試
using System;using System.Collections;using System.Collections.Generic;using System.IO;using UnityEngine;using UnityEngine.UI; public class Test : MonoBehaviour{ public Text logText; void Awake() { LogSys.Init(new FileLogger()); } void Update() { if (Input.GetKeyDown(KeyCode.Q)) { Debug.Log("My name is Blinkedu."); } if (Input.GetKeyDown(KeyCode.W)) { Debug.LogWarning("My name is Blinkedu."); } if (Input.GetKeyDown(KeyCode.E)) { Debug.LogError("My name is Blinkedu."); } } private void OnDestroy() { LogSys.Disable(); }}
上述就是小編為大家分享的Unity中怎么實(shí)現(xiàn)日志輸出功能了,如果剛好有類似的疑惑,不妨參照上述分析進(jìn)行理解。如果想知道更多相關(guān)知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。
網(wǎng)站欄目:Unity中怎么實(shí)現(xiàn)日志輸出功能
網(wǎng)站鏈接:
http://weahome.cn/article/ipijsj.html