位置: 编程技术 - 正文

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 产生影响

  • 增值税发票验真伪怎么验
  • 子女继承父母房产最新政策2023
  • 应交税费转营业外支出
  • 自来水适用的税率是多少
  • 税收申报减免
  • 小规模没有税控怎么办
  • 农民工工资保证金管理暂行办法
  • 通行费发票勾选认证有多少就可以抵扣多少吗
  • 建筑企业劳务工资必须要开劳务发票吗?
  • 公司转让注册资金怎么弄
  • 公司出让土地是利好
  • 没有单价数量只有金额的发票可以用吗
  • 营改增金融商品范围
  • 农产品收购发票怎么抵扣
  • 租赁房使用权和所有权冲突
  • 利息保障倍数为负数说明什么
  • 汇算清缴的所得税会计分录
  • 分红未及时扣缴税款要缴滞纳金吗?
  • 客户忠诚度的表现行为有哪些
  • 发票报销增值税
  • 结汇汇兑损益账务处理
  • 销售退回涉及的科目
  • 工程分配协议书范本
  • 收购自然人股东的股权要注意什么
  • group policy client服务未能登录解决方法
  • sixtypopsix.exe - sixtypopsix是什么进程 有什么用
  • 内退人员
  • uniapp自定义组件模式
  • 分红财务做账
  • electron 打包
  • 运行vue项目的快捷键
  • 待摊费用在资产负债表里写在哪
  • 制造费用体现在哪些方面
  • 织梦设置的关键词看不到
  • 销售部门发生的商品维修费
  • 专票丢了重开需要交钱吗
  • 预收账款还可以用吗
  • 实收资本什么时候交齐
  • 企业跨年度的收入退回应该如何进行会计处理?
  • 现金日记账退款怎么记账
  • 预期年化收益率安全吗
  • 内部使用的收据可以做原始凭证吗
  • 关于投资收益纳税的说法
  • 预付账款要设明细科目吗
  • 成本结转的方法实例
  • 两家公司
  • 销售成本存在的问题
  • sql语句 时间差
  • mysql error1418
  • 通过备份记录获取文件
  • MSSQL SERVER 2005 数学函数整理
  • mac下安装anaconda
  • win8系统安装步骤
  • Winxp系统打不开浏览器
  • centos查看硬盘信息的命令
  • fedora常用命令
  • 手动ghost恢复
  • linux系统文件压缩命令
  • mac的mail登不上
  • win8经典模式
  • npscheck.exe - npscheck是什么进程 有什么用
  • win7玩游戏全屏
  • win8.2系统
  • 环境篇-幸福家庭是孩子心灵健康的关键.mp3
  • ubuntu用root运行
  • require jquery
  • js的select()方法
  • python的特点及应用范围
  • jquery元素选择器有哪些
  • Using Django with GAE Python 后台抓取多个网站的页面全文
  • 很全面的成语
  • 【Android】利用Notification操作设备的通知栏
  • android fragmentactivity
  • python引用和调用有什么不同
  • js制作qq简易聊天框
  • python3.6安装pil
  • 税控系统减免税报表里
  • 怀化市税务局领导
  • 2020年河南麦收时间
  • 增值税专用发票和普通发票的区别
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设