IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 游戏开发 -> Unity真机调试工具:LogViewer在手机上查看Unity3D的Console Log -> 正文阅读

[游戏开发]Unity真机调试工具:LogViewer在手机上查看Unity3D的Console Log

1. 导入工具
AssestStore 搜索 LogViewer,导入Unity。

在这里插入图片描述
2. 创建LogViewer GameObject
导出LogViewer后会在选择Reporter/create创建LogViewer的GameObject,会自动生成在场景中,名为Reporter。
注意:项目有多个场景,需要在入口场景创建,会跟在DontDestroyOnLoad中跟随整个项目的进行。
此时就可以愉快的使用了:屏幕使用手势画圈,调出界面。

  1. 扩展
    3.1 手势设置
    在Reporter上的Reporter组件中名为NumOfCircleToShow属性,作用为:手势画圈个数调起界面。

3.2 启用/禁用
/Assets/Unity-Logs-Viewer/Reporter/Reporter.cs文件中,大概在1780行左右,有如下代码:
void Update()
{
fpsText = fps.ToString(“0.000”);
gcTotalMemory = (((float)System.GC.GetTotalMemory(false)) / 1024 / 1024);
//addSample();

#if UNITY_CHANGE3
int sceneIndex = SceneManager.GetActiveScene().buildIndex ;
if( sceneIndex != -1 && string.IsNullOrEmpty( scenes[sceneIndex] ))
scenes[ SceneManager.GetActiveScene().buildIndex ] = SceneManager.GetActiveScene().name ;
#else
int sceneIndex = Application.loadedLevel;
if (sceneIndex != -1 && string.IsNullOrEmpty(scenes[Application.loadedLevel]))
scenes[Application.loadedLevel] = Application.loadedLevelName;
#endif

	calculateStartIndex();
	// 这里 增加自定义判断条件
	if (!show && isGestureDone()) {
		doShow();
	}


	if (threadedLogs.Count > 0) {
		lock (threadedLogs) {
			for (int i = 0; i < threadedLogs.Count; i++) {
				Log l = threadedLogs[i];
				AddLog(l.condition, l.stacktrace, (LogType)l.logType);
			}
			threadedLogs.Clear();
		}
	}

在你 doShow()函数调用时,可以修改代码自定义增加判断条件,可根据release版本还是beta版本等。

3.3 设备信息存储文件
LogViewer会在每次初始化时候存储一个本地设备信息文件:build_info.txt,不同设备会做修改,协同开发会出现此文件冲突,需要在SVN或者Git中将此文件过滤,或者修改代码解决此文件。
在/Assets/Unity-Logs-Viewer/Reporter/Editor/ReporterEditor.cs文件有如下代码:
public class ReporterModificationProcessor : UnityEditor.AssetModificationProcessor
{
[InitializeOnLoad]
public class BuildInfo
{
static BuildInfo()
{
EditorApplication.update += Update;
}

	static bool isCompiling = true;
	static void Update()
	{
		if (!EditorApplication.isCompiling && isCompiling) {
			//Debug.Log("Finish Compile");
			if (!Directory.Exists(Application.dataPath + "/StreamingAssets")) {
				Directory.CreateDirectory(Application.dataPath + "/StreamingAssets");
			}
			string info_path = Application.dataPath + "/StreamingAssets/build_info.txt";
			StreamWriter build_info = new StreamWriter(info_path);
			build_info.Write("Build from " + SystemInfo.deviceName + " at " + System.DateTime.Now.ToString());
			build_info.Close();
		}

		isCompiling = EditorApplication.isCompiling;
	}
}

}

Updata函数中有写入并保存本地功能,可将此部分代码进行修改,避免协同开发遇到冲突。

另外有更多扩展功能可以按照需求自己修改代码,例如:上传错误,警告等信息,Unity-Logs-Viewer的Reporter.cs中有名为Log的类,可以获取Unity抛出的异常,自己探索吧。

  游戏开发 最新文章
6、英飞凌-AURIX-TC3XX: PWM实验之使用 GT
泛型自动装箱
CubeMax添加Rtthread操作系统 组件STM32F10
python多线程编程:如何优雅地关闭线程
数据类型隐式转换导致的阻塞
WebAPi实现多文件上传,并附带参数
from origin ‘null‘ has been blocked by
UE4 蓝图调用C++函数(附带项目工程)
Unity学习笔记(一)结构体的简单理解与应用
【Memory As a Programming Concept in C a
上一篇文章      下一篇文章      查看所有文章
加:2021-07-10 11:40:33  更:2021-07-10 11:40:51 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/8 12:05:30-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码