xjc*_*jcl 0 c# logging unity-game-engine
当您在 Unity IDE 内部运行项目时,您可以在单独的控制台小部件中看到日志消息。但是,我正在开发一款多人游戏,因此我需要至少在 2 个以上客户端上进行测试,这需要在 IDE 之外进行独立构建,因此我无法再看到日志消息。有什么方法可以在实际屏幕或 GUI 上打印日志吗?
xjc*_*jcl 14
添加它C# script并将其附加到场景中的新游戏对象:
using UnityEngine;
using System.Collections;
public class ZzzLog : MonoBehaviour
{
uint qsize = 15; // number of messages to keep
Queue myLogQueue = new Queue();
void Start() {
Debug.Log("Started up logging.");
}
void OnEnable() {
Application.logMessageReceived += HandleLog;
}
void OnDisable() {
Application.logMessageReceived -= HandleLog;
}
void HandleLog(string logString, string stackTrace, LogType type) {
myLogQueue.Enqueue("[" + type + "] : " + logString);
if (type == LogType.Exception)
myLogQueue.Enqueue(stackTrace);
while (myLogQueue.Count > qsize)
myLogQueue.Dequeue();
}
void OnGUI() {
GUILayout.BeginArea(new Rect(Screen.width - 400, 0, 400, Screen.height));
GUILayout.Label("\n" + string.Join("\n", myLogQueue.ToArray()));
GUILayout.EndArea();
}
}
Run Code Online (Sandbox Code Playgroud)
该脚本改编自此处,但已进行了很多清理,角已从左上角更改为右上角,并且添加了队列大小的新变量,因此消息不会离开屏幕:
| 归档时间: |
|
| 查看次数: |
7164 次 |
| 最近记录: |