【Unity自动化游戏框架】通用自动化游戏框架 爽到起飞的工作流 巨幅提升效率 质量 产能

本文主要是介绍【Unity自动化游戏框架】通用自动化游戏框架 爽到起飞的工作流 巨幅提升效率 质量 产能,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

https://github.com/sunsvip/GF_HybridCLRicon-default.png?t=N7T8https://github.com/sunsvip/GF_HybridCLR

开始GF_HybridCLR自动化通用游戏框架,功能设计和用法的系列博文;

GF_HybridCLR通用框架介绍

自动化工作流框架打包/HybridCLR热更流程 万人同屏战斗项目模板

前言:

"工欲善其事必先利其器",  好的框架是对开发工作流的规范化、简单化,当然,高性能是基础必要条件。一个完善的游戏框架不仅能大幅提高开发效率、提高项目质量,还能让程序员码字的时候思路清晰、心情舒畅。

从业以来,接触过很多客户端"框架",架构主要是MVC、 ECS当然最多的还是Manager of managers。诸多心酸,懂的人都懂。有人喜欢重复造轮子,为了设计而设计,在不了解游戏开发痛点、也不知道优秀通用框架都具备哪些必要特性的情况下闭门造车,毫不权衡、不考虑团队和项目需求。毫无疑问,适用于团队开发的通用游戏框架,必须考虑团队技术成员的整体能力,应该是保证高性能的同时,规范简化开发流程、降低开发门槛、提升开发效率。

当然,以上都是废话,最重要的是不用加班了。因为提高效率和质量,能避免堆成屎山,避免大量无谓的内耗加班。

GameFramework简介:

GameFramework是一款设计非常优秀的开源游戏框架,有些新手刚接触时给出"过渡设计"的评价,熟悉框架之后才会明白这么设计有多么优雅。实际上GF暴露给用户层的接口非常简洁,总结一下就是GameObject显示/隐藏只需ShowEntity()、HideEntity(), UI打开/关闭只需OpenUIForm(), CloseUIForm(); 用户层只管调用,至于内部复杂的对象池复用、释放,资源加载、释放,都由GF框架内部自动管理。 API或生命周期函数命名的规范化也是GF的一大亮点。GF内部实现大量使用了接口(Interface),以至于初学者想跳转查看内部实现,结果都跳转到了抽象接口,因此认为"过渡设计"; 

GF把核心模块与游戏引擎解耦,抽离出了一个核心叫GameFramework程序集, 而引擎相关接口封装为UnityGameFramework, 去实现GameFramework的各种功能接口;GameFramework程序集就实现了跨引擎。并且GF使用了大量解耦设计,比如Helper接口,我们只需实现Helper接口就能对各个功能模块自定义;

这也就是为什么GF已经三年没有更新,却依然没有"兼容性“问题的原因。比如随着时间的发展,技术不断更新进步,其间出现了更好的json插件或者zstring(无GC的字符串格式化、连接插件),我们只需使用这些插件实现GF序列化、文本处理接口,就可以一键切换使GF用上这些新特性。

通过自定义Helper实现框架接口以使用新功能

通过自定义Helper实现GF接口实现自己解析多语言方式

HybridCLR简介:

HybridCLR是新一代的C#热更方案,通过修改Unity对应版本的il2cpp源码使其拥有运行时动态加载assembly的能力。可以用纯C#开发工作流,无感知的支持代码热更,极大提高了热更项目开发效率。

自动化:

自动化、简单化、高效化是GF_HybridCLR的宗旨, "懒"是核心驱动力。功能随着本人从业以来参与设计研发无数个项目中,遇到的痛点以及推敲可能遇到的问题,以及作为设计师对用户体验的极致追求。把多年来的沉淀总结完善到了框架内,作为自动化工具链;

1,功能工具栏

首先映入眼帘的是醒目的框架工具栏,这些是点击频率最高的按钮,位置必须醒目,用户体验上必须拒绝拖沓,使用频率高的菜单,能点一下绝不点两下。

核心功能工具栏

当然,有一些无关痛痒的、自动化流程自动执行的命令(如刷新数据表),为了给用户留出选择权(我可以不用,但你不能没有), 这些优先级低的命令,才会以Unity顶部菜单栏的形式留给用户,如:

 好的工作流,就像写一篇好文章一样,层次丰富、言简意赅、主题清晰、用意明了。不宜用力过猛,恰到好处;

Toolbar工具栏功能设计:

 ① 场景切换:

你有没有打开一个项目后,再一层一层翻目录找启动场景?

你有没有半路进入一个项目组后,打开项目一脸懵,不知场景在哪?怎么启动?

谢特?这么影响用户体验的痛点怎么能存在?

直接点击弹出场景选择下拉列表, 点击即可切换场景。

②一键打包/打热更工具:

你有没有打包前要设置一堆参数?

如果接了HybridCLR热更,还要执行一堆前置工作,配置手忙脚乱,丢三落四,漏掉某个步骤就会出现莫名其妙的问题,再重新来过?

打包工具窗口全部解决,并且支持部署Jenkins远程打包、单机/热更模式一键切换。

一键打包工具界面
③ App基础配置:

什么?配置项七零八落?菜单九进九出?

策划总忘记导表、生成表代码?

App Config把项目配置齐聚一堂,设计分辨率、流程、数据表、常量表、多语言都在这里;

勾选即启用,配置表、常量表、多语言,自动检测文件改变,自动刷新导出到工程;

④工具集:

什么?包体优化困难?

多语言填写麻烦、容易遗漏?废弃的多语言Key没人处理,冗余越来越严重?

...

 游戏开发中常用的功能汇聚于此,并且支持轻松扩展,只需继承工具基类编写自己的功能,工具栏内就会自动显示你的自定义工具入口;

框架内置了痛点覆盖面相当广的工具集,如:代码裁剪配置工具、包体优化工具集(图片/图集压缩、动画文件压缩)、语言国际化自动扫描翻译工具、一键换字体、图片艺术字生成、AOT元数据补充配置、ChatGPT AI助手等;

都是直击痛点的工具,功能太多,不逐一说明;

包体优化工具集:批量处理大规模文件,大幅优化包体大小
包体优化工具集
多语言工具: 一键精准扫描代码、Prefab、数据表中的多语言文本;一键增删支持语种;自动生成多语言excel、自动翻译多语言;
多语言扫描翻译工具
⑤打开代码工程:

 啥?想打开代码工程还要找个脚本去打开?

Assets->Open C# Project还要翻菜单?

直接Toolbar一键打开代码工程,用户体验第一位,分秒必争;

2,UI代码生成工具:

你还在手动写UI变量?还在拖拖拽拽?

UI代码生成工具,直接点击Hierarchy节点批量选择添加UI变量、批量添加按钮回调事件;

隔离式生成partial独立UI变量代码,一键添加变量自动绑定、自动命名、支持数组;编码效率飞跃提升;

这篇关于【Unity自动化游戏框架】通用自动化游戏框架 爽到起飞的工作流 巨幅提升效率 质量 产能的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1053162

相关文章

一文详解Python如何开发游戏

《一文详解Python如何开发游戏》Python是一种非常流行的编程语言,也可以用来开发游戏模组,:本文主要介绍Python如何开发游戏的相关资料,文中通过代码介绍的非常详细,需要的朋友可以参考下... 目录一、python简介二、Python 开发 2D 游戏的优劣势优势缺点三、Python 开发 3D

5 种使用Python自动化处理PDF的实用方法介绍

《5种使用Python自动化处理PDF的实用方法介绍》自动化处理PDF文件已成为减少重复工作、提升工作效率的重要手段,本文将介绍五种实用方法,从内置工具到专业库,帮助你在Python中实现PDF任务... 目录使用内置库(os、subprocess)调用外部工具使用 PyPDF2 进行基本 PDF 操作使用

C#自动化实现检测并删除PDF文件中的空白页面

《C#自动化实现检测并删除PDF文件中的空白页面》PDF文档在日常工作和生活中扮演着重要的角色,本文将深入探讨如何使用C#编程语言,结合强大的PDF处理库,自动化地检测并删除PDF文件中的空白页面,感... 目录理解PDF空白页的定义与挑战引入Spire.PDF for .NET库核心实现:检测并删除空白页

C#利用Free Spire.XLS for .NET复制Excel工作表

《C#利用FreeSpire.XLSfor.NET复制Excel工作表》在日常的.NET开发中,我们经常需要操作Excel文件,本文将详细介绍C#如何使用FreeSpire.XLSfor.NET... 目录1. 环境准备2. 核心功能3. android示例代码3.1 在同一工作簿内复制工作表3.2 在不同

Java 缓存框架 Caffeine 应用场景解析

《Java缓存框架Caffeine应用场景解析》文章介绍Caffeine作为高性能Java本地缓存框架,基于W-TinyLFU算法,支持异步加载、灵活过期策略、内存安全机制及统计监控,重点解析其... 目录一、Caffeine 简介1. 框架概述1.1 Caffeine的核心优势二、Caffeine 基础2

Python实现自动化删除Word文档超链接的实用技巧

《Python实现自动化删除Word文档超链接的实用技巧》在日常工作中,我们经常需要处理各种Word文档,本文将深入探讨如何利用Python,特别是借助一个功能强大的库,高效移除Word文档中的超链接... 目录为什么需要移除Word文档超链接准备工作:环境搭建与库安装核心实现:使用python移除超链接的

Python Excel 通用筛选函数的实现

《PythonExcel通用筛选函数的实现》本文主要介绍了PythonExcel通用筛选函数的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着... 目录案例目的示例数据假定数据来源是字典优化:通用CSV数据处理函数使用说明使用示例注意事项案例目的第一

使用Python实现Word文档的自动化对比方案

《使用Python实现Word文档的自动化对比方案》我们经常需要比较两个Word文档的版本差异,无论是合同修订、论文修改还是代码文档更新,人工比对不仅效率低下,还容易遗漏关键改动,下面通过一个实际案例... 目录引言一、使用python-docx库解析文档结构二、使用difflib进行差异比对三、高级对比方

深入浅出Spring中的@Autowired自动注入的工作原理及实践应用

《深入浅出Spring中的@Autowired自动注入的工作原理及实践应用》在Spring框架的学习旅程中,@Autowired无疑是一个高频出现却又让初学者头疼的注解,它看似简单,却蕴含着Sprin... 目录深入浅出Spring中的@Autowired:自动注入的奥秘什么是依赖注入?@Autowired

GSON框架下将百度天气JSON数据转JavaBean

《GSON框架下将百度天气JSON数据转JavaBean》这篇文章主要为大家详细介绍了如何在GSON框架下实现将百度天气JSON数据转JavaBean,文中的示例代码讲解详细,感兴趣的小伙伴可以了解下... 目录前言一、百度天气jsON1、请求参数2、返回参数3、属性映射二、GSON属性映射实战1、类对象映