Unity技术-GameFramework文档系列(三)- 日志管理和UI
- 点击跳转=>GameFramework文档系列(一)- 简介和初步使用
- 点击跳转=>GameFramework文档系列(二)- 场景相关
- 点击跳转=>保姆式Cocos合成大西瓜案例
- 点击跳转=>养不起真猫,就用代码吸猫-Unity粒子实现画猫咪
- 点击跳转=>Unity粒子特效系列-龙卷风预制体做好了,unitypackage包直接用!
- 点击跳转=>姐姐喊我解锁套娃新技能:FairyGUI在Unity中实现List嵌套List/立体画廊等,玩出花儿来
- 点击跳转=>Unity新手必备5款宝藏插件–价值上千元白嫖最新版
本文约4.9千字,新手阅读需要11分钟,复习需要4分钟 【收藏随时查阅不再迷路】
👉关于作者
众所周知,人生是一个漫长的流程,不断克服困难,不断反思前进的过程。在这个过程中会产生很多对于人生的质疑和思考,于是我决定将自己的思考,经验和故事全部分享出来,以此寻找共鸣 !!!
专注于Android/Unity和各种游戏开发技巧,以及各种资源分享(网站、工具、素材、源码、游戏等)
有什么需要欢迎私我,交流群让学习不再孤单。
👉前提
👉实践过程
😜UI
经过上一节搞定了场景,接着就要开搞UI了,UI也不是直接就在场景中全部展示出来了,有些需要我们动态从资源中加载。
我直接上个步骤图,看的更形象一些。
- 代码中用UIComponent组件加载UI预制体,重点注意第二个参数,将UI进行了分组和层级管理
- 回到编辑器中找到GameFramework-UI物体,里面有个UI Groups属性要设置
- 预制体需要挂载脚本,脚本需要继承UIFormLogic脚本,这是UI控制脚本,这样才能交给框架进行管理
这一套下来,真的是如行云流水般顺畅,越来越方便了。继续学习看看框架到底还有多少惊喜。
顺畅个屁啊,小空又跑回来更新了,学到后面发现怎么UI也出不来,哎,就是跟你玩,就是不出。不小心踩了个坑。
UI,UI,都说了是UI,我竟然没搞Cnavas,糊涂啊。根据上图步骤,第三步预制体是你布局好UI控件然后将整个Canvas做成预制体。成功后是这样的(下图):
还有一点要留意,运行后你会发现在场景里并没有找到UI组件,其实不然,框架通过UIComponent 创建的的UI 统统都会跑到Framework 里面 UI下面。无论你打开几个场景UI始终都是在框架所在场景内的。
如上图所示,全部在【UI-UI Form Instances】下
😜日志管理工具
在任何编程语言中,日志都是重中之重,是逻辑分析的首要工具,所以我们首要任务就是要学会使用框架的日志工具。
首先是基础的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;
try
{
//每次运行的时候将日志替换,就像队列一样
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);
try
{
File.AppendAllText(CurrentLogPath, log, Encoding.UTF8);
}
catch
{
}
}
}
然后在挂在了Base脚本的物体中选择使用即可,就这么简单!!!
运行的时候,也可以在调试器窗口中找到各个路径位置。
👉其他
📢作者:小空和小芝中的小空
📢转载说明-务必注明来源:https://zhima.blog.csdn.net/
📢欢迎点赞👍收藏🌟留言📝
相关文章
- 传Google拟收购微软Office文档协作工具厂商
- 【华为云技术分享】华为云文档数据库服务DDS监控告警全新优化
- 【Linux异常】执行man proc查看proc文档时提示错误 man: can't set the locale; make sure $LC_* and $LANG are correct No manual entry for proc
- SpringBoot 如何生成接口文档
- 减压Zip与创建Zip文档
- 文档:用博客做技术文档的总结
- MFC Windows 程序设计[283]之文档监视例程(附源码)
- 【网址收藏】kubesphere3.0的安装文档
- nginx ngx_http_core_module 模块中文文档
- eclipse设置文档注释的格式
- GIS基本知识学习PDF文档
- 授人以渔 - 如何自行查询任意 SAP UI5 控件属性的文档和技术实现细节试读版
- Atitit 大数据体系图 大数据 技术 数据采集 gui自动化 爬虫 Nui自动化 Ocr技术 Tts语音处理 文档处理(office zip等) html文档处理解析 转
- Atitit usrQBK1600 技术文档的规范标准化解决方案
- DayDayUp:计算机技术与软件专业技术资格证书之《系统集成项目管理工程师》课程讲解之项目信息文档管理与配置管理
- 满江红开放技术研究组织发布Seam 2.0中文文档RC版
- DayDayUp:计算机技术与软件专业技术资格证书之《系统集成项目管理工程师》课程讲解之项目信息文档管理与配置管理
- BootStrap后台管理常用文档存档
- turtle简单教程文档
- 【华为云技术分享】华为云文档数据库服务DDS监控告警全新优化
- 288页的python编程文档,从入门到实践,入门看这一篇就够了
- python反爬之动态字体相关文档
- SQLAlchemy技术文档(中文版)-下
- Poseidon 系统是一个日志搜索平台——认证看链接ppt,本质是索引的倒排列表和原始日志数据都存在HDFS,而文档和倒排的元数据都在NOSQL里,同时针对单个filed都使用了独立索引,使用MR来索引和搜索
- 在DHTML中把整个文档的各个元素作为对象处理的技术是:()
- Python基于YOLOv5的交通标志识别系统[源码&技术文档&部署视频&数据集]
- Python基于OpenCV的指针式表盘检测系统(附带源码&技术文档)
- 消息通知系统设计文档