位置: 编程技术 - 正文

Unity3D游戏之游戏日志打印(unity3drpg游戏)

编辑:rootadmin

推荐整理分享Unity3D游戏之游戏日志打印(unity3drpg游戏),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:unity3d游戏教程,unity3d简单游戏教程,unity3d简单游戏教程,unity3d网络游戏,unity3d简单游戏教程,unity3d网络游戏,unity3d简单游戏教程,unity3drpg游戏,内容如对您有帮助,希望把文章链接给更多的朋友!

游戏运行之时打印日志,方便我们查bug,下面我说说自己项目的日志系统怎么弄。

日志等级分别为

LogLevel.DEBUG,

LogLevel.INFO,

LogLevel.WARNING,

LogLevel.ERROR,

LogLevel.CRITICAL,

LogLevel.EXCEPT。

//获得类名和方法名

private static String GetStackInfo()

{

StackTrace st = new StackTrace();

StackFrame sf = st.GetFrame(2);//

var method= sf.GetMethod();

return String.Format("{0}.{1}():",method.ReflectedType.Name,method.Name);

}

解析:

我们在学习函数调用时,都知道每个函数都拥有自己的栈空间。一个函数被调用时,就创建一个新的栈空间。那么通过函数的嵌套调用最后就形成了一个函数调用堆栈。在c#中,使用StackTrace记录这个堆栈。你可以在程序运行过程中使用StackTrace得到当前堆栈的信息。

日记类LoggerHelper

分别有几个接口:

LoggerHelper.Debug(string filter, object message, Boolean isShowStack = SHOW_STACK);

LoggerHelper.Info(string filter, object message, Boolean isShowStack = SHOW_STACK);

LoggerHelper.Warning(string filter, object message, Boolean isShowStack = SHOW_STACK);

LoggerHelper.Error(string filter, object message, Boolean isShowStack = SHOW_STACK);

LoggerHelper.Critical(string filter, object message, Boolean isShowStack = SHOW_STACK);

LoggerHelper.Except(string filter, object message, Boolean isShowStack = SHOW_STACK);

统一调用

Log(string message,LogLevel level ,bool writeEditorLog = ture)

{

var msg = string.Concat(DataTime.Now.ToString("yyyy-MM-dd HH:mm:ss,fff"),message);

m_logWriter.WriteLog(msg,level,writeEditorLog);

}

如:Log(string.Concat("[DEBUG]:",isShowStack?GetStackInfo():"",message,"Index = ",index&#;&#;),LogLevel.DEBUG);

public class LogWriter

{

private string m_logPath = UnityEngine.Application.persistentDtaPath &#; "/log/";

private string m_logFileName = "log_{0}.txt";

private string m_logFilePath;

Unity3D游戏之游戏日志打印(unity3drpg游戏)

private FileStream m_fs;

private StreamWriter m_sw;

private Action<String,LogLevel,bool> m_logWriter;

private readonly static object m_locker = new object();

public LogWriter()

{

if(Directory.Exists(m_logPath)) Directory.CreateDirectory(m_logPath);

m_logFilePath = String.Concat(m_logPath,String.Format(m_logFileName,DataTime.Today.ToString("yyyyMMdd"));

try

{

m_logWriter = Write;

m_fs = new FileStream(m_logFilePath,FileMode.Append,FileAccess.Write,FileShare.ReadWrite);

m_sw = new StreamWriter(m_fs)

}

catch{}

//释放资源

public void Release()

{

lock(m_locker)

{

if(m_sw != null)

{

m_sw.Close();

m_sw.Dispose();

.....

}

private void Write(string msg,LogLevel level,bool writeEditorLog)

{

lock(m_locker)

try

{

if(m_sw != null)

{

m_sw.WriteLine(msg);

m_sw.Flush();

}

.....

}

}

&#;&#;&#;&#;

Unity Batch 对 Vertex Shader 产生影响 今天用VertexShader来实现旗帜飘动,本来设想旗帜是在旗面的法线方向上下飘动的,所以在模型坐标系下给vertex.z加上一个随时间变化的sine波。简化如下

正弦波近似 在做一些游戏效果的时候经常需要用到正弦波,它平滑又有周期性,但是sin的计算开销略大。作为优化,在GPUGem上看到一个用三次函数平滑三角波得到

Unity3D Mesh学习笔记1-创建一个最简单的四边形 usingUnityEngine;usingSystem.Collections;publicclassQuad:MonoBehaviour{//UsethisforinitializationvoidStart(){CreateQuad();}privatefloatm_width=1;privatefloatm_length=1;publicvoidCreateQuad(){/*1.顶

标签: unity3drpg游戏

本文链接地址:https://www.jiuchutong.com/biancheng/384520.html 转载请保留说明!

上一篇:[置顶] unity3d Human skin real time rendering 真实模拟人皮实时渲染([置顶]津鱼.我爱你)

下一篇:Unity Batch 对 Vertex Shader 产生影响

  • 购买办公用品合同模板免费
  • 山西省税务申报网站
  • 运输公司的税率是多少
  • 公司给个人分红会计分录
  • 个人所得税申报退税的条件
  • 一般纳税人申报纳税的流程
  • 如何做固定资产卡片
  • 哪些福利费不税前扣除
  • 实收资本能直接转出来吗
  • 什么情况下视同销售
  • 土地转让交哪些税种
  • 机器设备折旧计提规定
  • 免税产品的销项税
  • 应收账款对应的科目有哪些
  • 年中股东红利分录怎么写
  • 税率与征收率有关系吗
  • 计提的工资没有实际发放,是否需要调增?
  • 转让非独占许可使用权调整
  • 认证专票税务处理怎么做?
  • 计提工资是计提当月的还是上个月的
  • 再生资源会计科目
  • 惠普hp笔记本电脑怎么开机
  • php如何定义一个常量?常量名有哪些命名规则?
  • windows server 2008和r2
  • php删除用户
  • 公司买手机怎么做账务处理
  • 不合格原材料
  • PHP:stream_get_transports()的用法_Stream函数
  • PHP:spl_autoload_call()的用法_spl函数
  • 照片文件夹如何压缩
  • php sql语句
  • uniapp打包成h5如何调用原生
  • 质保金 销售费用
  • 31.JavaScript数组进阶,一网打尽数组操作函数slice、filter、map、reduce、some、every、find、splice
  • 百旺金赋开票系统客服电话
  • 交所得税会计分录例题
  • 现金等价物是指企业持有的
  • 公章盖错在旁边加盖正确的说明
  • 其他应收款坏账处理
  • 企业所得税季初和季末怎么算
  • 保证增信行通俗理解
  • 印刷行业成本核算程序
  • 投资收益的主要形式有
  • 代理记账的业务规范
  • 个税 收入
  • 增值税纳税申报类型有哪些
  • 电影卡购买
  • 疫情期间社保减免优惠政策几个月
  • 简易计税项目税率
  • 从政府取得土地使用权缴增值税吗
  • 购建固定资产属于投资活动吗
  • 财务会计期末总结
  • 出口退税进项发票有什么要求
  • 小规模现金流量表年报不填可以吗
  • 业务招待费可以开专票抵扣吗
  • 资产负债表中的货币资金怎么算
  • 初级会计现值的计算
  • 小企业建账选哪种会计制度
  • zmweb.exe是什么进程
  • Windows7任务计划在什么位置?
  • win8电脑恢复系统怎么操作
  • ubuntu20.04忘记用户密码怎么办
  • linux获取操作系统版本
  • mac如何强制关机开机
  • sunasServ.exe - sunasServ是什么进程 有何作用
  • linux文件目录的含义
  • Cocos2d-x c++和java相互调用
  • 分形图形学
  • unity 3d
  • visual studio 10 cocos2dx项目移植到eclipse的android项目(配置请参照上一篇文章开发环境搭建)
  • bat批处理视频教程
  • android中的短信联系人管理,浏览器属于
  • 京东试用js脚本
  • ecmascript6 官方文档
  • unity每秒执行一次
  • listview添加数据
  • js实现的奥运倒计时时钟效果代码
  • 国家税务总局关于进一步优化营改增纳税服务工作的通知
  • 个人无偿捐赠增值税
  • 网上缴费如何开票
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设