Unity调试相关
1、LOG处理
将所有LOG信息写入到文件,并设置部分LOG显示到屏幕上,总结成以下脚本,将其挂载在摄像机上即可。
using UnityEngine;
using System.Collections;
using System.Collections.Generic;
using System.IO;
using System.Text; public class LogHandler : MonoBehaviour
{
//是否打开日志所在文件夹,默认不打开
public bool openLogDir = false;
//最多显示多少条日志到屏幕
public int showLogSize = ;
//设置过滤显示到屏幕的关键字,多个关键字用 | 隔开
public string filterString = "";
//日志存储路径
private string logSavePath;
//存储显示到屏幕上的日志
private List<string> logList;
void Start () {
logList = new List<string>();
logSavePath = Application.persistentDataPath + "/log";
if(openLogDir)
{
Application.OpenURL (Application.persistentDataPath);
}
//将本次日志与上次启动时的日志分离开
using(StreamWriter writer = new StreamWriter(logSavePath, true, Encoding.UTF8))
{
writer.WriteLine("\n\n----------------------------- 日志分隔线 -----------------------------");
writer.WriteLine("----------------------------- "+ System.DateTime.Now +" -----------------------------");
}
//注册日志处理函数
Application.logMessageReceived += HandleLog;
} void HandleLog(string logString, string stackTrace, LogType type)
{
//将所有日志写入到日志文件
using(StreamWriter writer = new StreamWriter(logSavePath, true, Encoding.UTF8))
{
writer.WriteLine(logString + "\n\t\t" + type + ": " + stackTrace.Replace("\n","\n\t\t"));
}
//设置过滤条件,将指定类型、包含某些字符串的日志保存到屏幕日志窗器中
bool show = false;
//置过滤条件:指定类型
if (type == LogType.Error || type == LogType.Exception || type == LogType.Warning)
{
show = true;
}
//置过滤条件:包含指定关键字,多个关键字用 | 隔开
foreach (string str in filterString.Split('|'))
{
if(logString.Contains(str))
{
show = true;
break;
}
}
if(show)
{
logList.Add (logString);
if (logList.Count > showLogSize)
{
logList.RemoveAt();
}
}
} void OnGUI()
{
GUI.color = Color.red;
for (int i = ; i < logList.Count; ++i)
{
GUILayout.Label(logList[i]);
}
}
}
Unity调试相关的更多相关文章
- 【转载】DXUT11框架浅析(4)--调试相关
原文:DXUT11框架浅析(4)--调试相关 DXUT11框架浅析(4)--调试相关 1. D3D8/9和D3D10/11的调试区别 只要安装了DXSDK,有个调试工具DirectX ControlP ...
- Unity调试设置
[Unity调试设置] 1.Mac中,"Unity"->"Preferences...". Windows中,"Edit"->& ...
- Eclipse调试相关
Eclipse调试相关 F5 step into就是单步执行,遇到子函数就进入并且继续单步执行. F6 step over是在单步执行时,在函数内遇到子函数时不会进入子函数内单步执行,而是将子函数整个 ...
- unity调试native c/c++ dll
最近使用xlua,需要添加自定义的c lua库.研究了一下unity调试native c/c++ dll.方法如下: 通过Unity打开VS工程 VS菜单栏[工具]-> [选项] 在选项对话框中 ...
- Unity调试外部DLL
1.更改DLL的.csproj工程配置文件,在里面添加如下属性:<PropertyGroup Condition=" '$(OS)' == 'Unix' "> ...
- Unity调试中心
渐渐在公司接SDK3个月了,一直没有参加项目的游戏功能编写几乎快忘记Unity了, 看到那些前辈编写游戏到发布游戏,总结了下 每一个游戏应该有一个调试中心, 方便策划 测试更好的了解游戏和测试游戏. ...
- node 调试相关
#0 node 正确的书写方式 为了防止后面出现混乱的各种书写,先来了解一下如何正确书写 node 的名称. 下面使用来自@bitandbang 推文中的图片展示如何正确书写 node 名称. nod ...
- Unity UI相关总结
UIGrid 加载面板时,如果面板中含有大容量的 UIGrid,可能会很卡.我们可以只加载 UIGrid 的前 n 个单元格对象,在显示面板之后,利用协程加载剩余的所有单元格,每帧加载 m 个. 同样 ...
- unity开发相关环境(vs、MonoDevelop)windows平台编码问题
情景描述:最近在做Unity的网络底层,用VS编写源码,MonoDevelop用来Debug,在Flash Builder上搭建的Python做协议生成器,期间有无数次Unity莫名奇妙的的down掉 ...
随机推荐
- 【SDOI2010题集整合】BZOJ1922~1927&1941&1951&1952&1972&1974&1975
BZOJ1922大陆争霸 思路:带限制的单源最短路 限制每个点的条件有二,路程和最早能进入的时间,那么对两个值一起限制跑最短路,显然想要访问一个点最少满足max(dis,time) 那么每次把相连的点 ...
- ListView的使用-模拟微博随便看看栏目【执行与优化】
今天我们来讲述一下如何使用ListView来模仿微博随便看看栏目(ps:这是老师布置的作业,所以…),在前篇博客中,我们讲述了细解ListView之自定义适配器的使用,所以本篇我们不以特别详细的讲述( ...
- 旅图——UI测试
测试目标 保证代码质量,确保基础功能的实现,可以有效地保证代码的可靠性,让模块在与别的模块整合时出现更少的错误,减少最终测试时查找困难无方向. UI测试 登录过程 模拟登录过程,密码正确与密码错误的情 ...
- PHP面向对象之朝花夕拾
虽然平时都在用面向对象的思维编程.但是都是基于框架,很多技术细节一段时间不用就会逐渐模糊.拾遗部分:面向对象的三大特称:继承多态封装. 构造方法.__construct() 构造方法.再new的时候 ...
- mongo&node
///// node install $ sudo apt-get install python-software-properties $ curl -sL https://deb.nodesou ...
- Jquery 基本知识(一)
1. DOM对象:通过例如getElementById方法获取到DOM树中的元素就是DOM对象 jQuery对象:通过jQuery包装DOM对象后产生的对象 --- 注意:jQuery对象和DOM对象 ...
- uC/OS-II核心(Os_core)块
/*************************************************************************************************** ...
- context.Request.Files为NULL问题 在实现图片上传功能的时候出现在ashx等处理页面出现context.Request.Files为NULL异常,有几点需要注意:
.在客户端可以将form用submit提交,如下: <%@ Page Language="C#" AutoEventWireup="true" CodeF ...
- paramiko模块使用
paramiko是一个用于做远程控制的模块,使用该模块可以对远程服务器进行命令或文件操作,fabric和ansible内部远程管理就是使用paramiko来实现. #!/usr/bin/env pyt ...
- phpcms v9 数据库操作函数
表明默认当前load_model('xxxx')模块所在表名xxxx 若要指定表名 则:操作在mysql.class.php中$this->db->select(...) 1.查询 $ ...