1、介绍
LunarConsole 是一款给Unity游戏在安卓和苹果手机平台提供在线日志显示。
2、实现原理
Unity的log机制: Application.logMessageReceived += LogMessage;能够接收Unity所有日志打印信息,这款插件将log消息发送给原生UI显示。此外pro版增加事件触发功能,在游戏中注册事件通过原生UI输入内容触发。
3、使用
(1)在assets store下载免费(推荐) https://www.assetstore.unity3d.com/cn/#!/content/82881 pro: https://www.assetstore.unity3d.com/cn/#!/content/43800 导入项目中。
(2)将LunarConsole这个类挂在DontDestroyOnLoad的对象上。
(3)打开Autorun这个类 当启动游戏时会调用他的构造方法 方法里面有清除老版本的一些操作和检测版本更新的操作屏蔽掉即可,这个清除老版本内容的方法没有判断是否存在就直接去deleteAsset会报错,所有这些功能直接干掉。
(4)日志开关:LunarConsoleConfig类的构造函数内给consoleEnabled变量赋值是否开启
(5)使用方法 如果想查看详细堆栈信息打包的时候勾上Development Build选项即可,默认日志窗口是关闭的,如果运行过程报错会自动打开弹出日志窗口可点开查看,也可以自己在屏幕上设置一个小按钮可随时查看日志内容很方便。
using UnityEngine;
using UnityEngine.UI;
using LunarConsolePluginInternal;
using LunarConsolePlugin;
public class Test : MonoBehaviour
{
public Text text;
public Button nomalBtn;
public Button warnBtn;
public Button errorBtn;
public GameObject errorObj;
public void OnNomalClick()
{
text.text = System.DateTime.Now.ToString();
Log.dev("test1:" + text.text);
}
public void OnWarnClick()
{
text.text = System.DateTime.Now.ToString();
Log.w("test2:" + text.text);
}
public void OnErrorClick()
{
errorObj.SetActive(false);
}
public void OnShowClick()
{
LunarConsole.Show();
}
}
如上图可查看详细堆栈信息,对程序员来说解决游戏中BUG是个很不错的工具。