👉关于作者
众所周知,人生是一个漫长的流程,不断克服困难,不断反思前进的过程。在这个过程中会产生很多对于人生的质疑和思考,于是我决定将自己的思考,经验和故事全部分享出来,以此寻找共鸣!!!
专注于Android/Unity和各种游戏开发技巧,以及各种资源分享(网站、工具、素材、源码、游戏等)
欢迎关注公众号【
空名先生
】获取更多资源和交流!
这段时间学习个Unity框架并且准备应用到实际项目中,但是因为作者神龙见首不见尾,没有什么比较详细的文档,学习困难,不过好在作者将框架所有内容开源了,再次记录下学习过程。
👉实践过程
😜如何使用?
工程目录及作用如下:
Libraries 存放 GameFramework.dll 核心框架和一些框架必需的第三方库(当前只有一个开源 zip 压缩算法库)
Prefabs 存放 GameFramework.prefab 预制体,用于快速创建一个游戏框架启动场景
Scripts 存放 UnityGameFramework 的全部 Runtime 和 Editor 代码
Example.unity 是一个含有 GameFramework.prefab 预制体的空场景,作为游戏启动的场景
ProcedureExample.cs 是一个示例流程代码文件,示例将以这个流程作为启动流程。
运行项目后发现Game场景有个浮动小窗口,这是框架提供的调试器窗口
Console 选项卡在运行时(当然可以在移动设备上)默认按不同日志类型,以不同的日志颜色回显最近的日志。点击某条日志可以查看详细的日志和堆栈详请
Information 选项卡显示设备硬件信息、游戏版本和资源信息,输入信息,传感器等
Profiler 选项卡显示性能调试相关的信息,内存,对象池,网络等信息
Other 选项卡可以用来配置调试框窗口的大小缩放(一般不用修改)、执行内存回收操作或者执行重启游戏操作等
作者英语不是很好,为了用起来快捷将里面部分英文翻译成了中文,看起来确实顺延多了,哈哈
😜日志管理工具
在任何编程语言中,日志都是重中之重,是逻辑分析的首要工具,所以我们首要任务就是要学会使用框架的日志工具。
首先是基础的Log日志(如图),和系统的一样输出到Unity编辑器的控制台
发布的产品,最好关闭所有日志或者仅开启错误及以上级别日志,自己开发调试的时候可以自定义开启日志级别。
除了在控制台打印,我们使用框架更多的可能是将日志保存到文件的功能。
自定义一个类继承DefaultLogHelper
using GameFramework;
using System;
using System.Collections;
using System.Collections.Generic;
using System.IO;
using System.Text;
using UnityEngine;
using UnityGameFramework.Runtime;
internal class FileLogHelper : DefaultLogHelper
private readonly string CurrentLogPath = Utility.Path.GetRegularPath(Path.Combine(Application.persistentDataPath, "current.log"));
private readonly string PreviousLogPath = Utility.Path.GetRegularPath(Path.Combine(Application.persistentDataPath, "previous.log"));
public FileLogHelper()
Application.logMessageReceived += OnLogMessageReceived;
if (File.Exists(PreviousLogPath))
File.Delete(PreviousLogPath);
if (File.Exists(CurrentLogPath))
File.Move(CurrentLogPath, PreviousLogPath);
catch
private void OnLogMessageReceived(string logMessage, string stackTrace, LogType logType)
string log = Utility.Text.Format("[{0}][{1}] {2}{4}{3}{4}", DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff"), logType.ToString(), logMessage ?? "<Empty Message>", stackTrace ?? "<Empty StackTrace>", Environment.NewLine);
File.AppendAllText(CurrentLogPath, log, Encoding.UTF8);
catch
然后在挂在了Base脚本的物体中选择使用即可,就这么简单!!!
运行的时候,也可以在调试器窗口中找到各个路径位置。
📢作者:小空和小芝中的小空
📢转载说明-务必注明来源:芝麻粒儿 的个人主页 - 专栏 - 掘金 (juejin.cn)
📢欢迎点赞👍收藏🌟留言📝