Unity游戏框架
文章平均质量分 91
SunSparkStudio
游戏设计开发工程师
展开
-
【Unity】通用GM QA工具 运行时数值修改 命令行 测试工具
GM工具使用:GM工具通常用于游戏运行时修改数值(加钱/血量)、解锁关卡等,用于快速无死角测试游戏。一个通用型GM工具对于游戏项目是非常实用且必要的,但通用不能向易用妥协,纯命令行GM门槛太高,对QA不友好。这类运行时命令行工具实现原理很简单,主要是通过给变量或方法添加Attribute标识,然后通过反射获取被标记的变量或方法,命令触发通过反射为变量赋值或Invoke方法。此类工具免费或付费的已经泛滥了,不推荐浪费时间重复造轮子。1. 免费开源的Log显示工具,也嵌入了命令行功能。原创 2024-08-22 18:00:27 · 572 阅读 · 0 评论 -
【Unity】C#热更dll混淆加密 代码加固 dll合并 .NET Reactor
很多人用HybridCLR进行全代码热更,即使加密AB包也毫无安全可言。而HybridCLR社区版对于非全热更,AOT程序集往往还得作为AOT泛型元数据补充的aot dll直接打进包里,也就意味着AOT程序集也暴露出去了,同样毫无安全可言。对于HybridCLR社区版,除了加密热更dll AB包,如何进一步提升安全性呢?代码混淆是一种比较常用的方式。.Net Reactor是一款非常好用稳定的dll加固软件,并且支持dll合并。除了客户端GUI界面外,还提供了命令行工具,dotNET_Reactor原创 2024-08-13 10:00:00 · 299 阅读 · 0 评论 -
【Unity自动化游戏框架】通用自动化游戏框架 爽到起飞的工作流 巨幅提升效率 质量 产能
"工欲善其事必先利其器", 好的框架是对开发工作流的规范化、简单化,当然,高性能是基础必要条件。一个完善的游戏框架不仅能大幅提高开发效率、提高项目质量,还能让程序员码字的时候思路清晰、心情舒畅。从业以来,接触过很多客户端"框架",架构主要是MVC、 ECS当然最多的还是Manager of managers。诸多心酸,懂的人都懂。有人喜欢重复造轮子,为了设计而设计,在不了解游戏开发痛点、也不知道优秀通用框架都具备哪些必要特性的情况下闭门造车,毫不权衡、不考虑团队和项目需求。原创 2024-06-11 17:18:35 · 3562 阅读 · 0 评论 -
【Unity编辑器扩展】编辑器代码一键添加按钮响应事件
Button组件的onClick事件其实分了两种,Persistent和NonPersistent,Persistent是持久保存的,也就是在编辑器界面添加的。两种事件存在两个独立的事件列表,两者独立存在。2. 选择Button节点(支持多选),右键菜单->UIForm Fields Tool-> Add Button Event添加事件,并自动按钮节点名为Button的标识ID;指的是按钮存储事件的变量。2. 参数UnityAction call,即按钮回调事件。原创 2023-07-14 11:52:25 · 1359 阅读 · 0 评论 -
【Unity编辑器扩展】字库裁剪工具, 优化字体文件大小,批量修改文本组件字体
需要注意的是,ttf是Unicode编码方式,需要把字符串转为Unicode编码,一个中文占2个字节。2. 扫描工程中使用到的字符集:主要是获取prefab中Text、TextMeshPro的文本,配置表和数据表中的文本,多语言表的文本以及代码中的字符串。3. 支持设置基础字符集文件:把需要强制保留的常用的字符集放进文本文件作为基础字符集,可在编辑器界面由用户选择自定义基础字符集文件。4. 把扫描出的字符集和基础字符集合并,生成裁剪后的字体文件。2. 把字体文件裁剪掉没用到的字符,仅保留项目中用到的字符;原创 2023-07-12 17:43:40 · 2122 阅读 · 0 评论 -
【Unity编辑器扩展】(三)PSD转UGUI Prefab, 一键拼UI解放美术/程序(完结)
1. 支持UGUI和TextMeshProGUI并新增FillColor(纯色)共16种UI类型:Button、TMP Button、 Dropdown、TMP Dropdown、FillColor、Image、InputField、TMP InputField、Mask、RawImage、Scroll View、Slider、Text、TMP Text、Toggle、TMP Toggle。2. 支持自定义UI类型匹配词,支持扩展自定义解析器Helper,易扩展。3. 支持批量导出图片和单独导出..原创 2023-06-27 19:06:17 · 5859 阅读 · 9 评论 -
【Unity编辑器扩展】(二)PSD转UGUI Prefab, 图层解析和碎图导出
1. 将psd文件导入Unity, 右键psd文件,选择Psd2UIForm Editor菜单,自动把psd解析为prefab节点树状图,并打开prefab2. 若UI设计师未按照规范制作,可手动根据需求调节UI类型或UI层级(可选)3. 点击扩展按钮,重新解析psd、导出碎图或生成UI界面prefab。(工具会自动记录psd文件最后修改时间,若发生变更,自动弹窗提示是否重新解析)= null;点击节点预览图层。原创 2023-05-25 17:18:20 · 4671 阅读 · 3 评论 -
【Unity】搭建Jenkins打包工作流,远程打热更、构建App
1. 在Jenkins中添加打包配置参数(如: 版本号, 目标平台等), 参数将以UI的形式显示在Jenkins Web界面以便打包前填写参数;在BuildResource中编写打包逻辑,如先获取生成的json参数文件,根据参数初始化各项设置,然后再打包资源。注意,注意Unity3d plugins的获取打包参数的方式与批处理脚本不同,使用${参数名}的方式获取参数值;最好的选择是安装Jenkins的Unity支持插件,使用插件启动Unity打包可以完美在网页输出Log日志。原创 2023-05-06 19:49:12 · 3775 阅读 · 1 评论 -
【Unity编辑器扩展】(一)PSD转UGUI Prefab, Aspose.PSD和Harmony库的使用
拼UI是该策划负责还是程序负责?”一直是国内游戏行业极具争议的话题。矛盾点也很清楚:程序:拼UI繁琐,没有技术含量,应该交给策划拼,程序工作繁重应该把时间用在刀刃上。策划:程序对拼UI的层次结构、命名要求复杂,拼UI需要技术思维,应该由程序负责。总之各有道理,但是话说回来,既然UI设计师在设计UI界面时必然会拼好UI元素,各种图层、颜色、字体字号信息都有,为什么还要重复UI设计师的工作再次人工拼一次UI呢?事实上市面上早已有。原创 2023-04-13 18:47:36 · 2890 阅读 · 1 评论 -
【Unity编辑器扩展】语言国际化工具,生成多语言Excel自动翻译并导出多语言表
多语言是个非常简单且常用的功能。但是重复工作量大,程序手动把多语言Key配置到多语言表经常会出现错漏,或者几经改版,有些Key已经不用却没有剔除,久而久之造成冗余。这中简单且重复的工作必须让工具来完成。原创 2023-04-03 17:41:48 · 2463 阅读 · 0 评论 -
【Unity】AI实战应用——Unity接入GPT和对游戏开发实际应用的展望
同事朋友们都在恐慌AI的发展,甚至有不少人开始抗拒。我的观点是:人工智能是大势所趋,势不可挡,那就驾驭它吧!我司已经在商业项目中实际使用了AI, 包括Stable Diffusion及其扩展插件,当然也有爆火的ChatGPT。Stable Diffusion + ControlNET + Lora以及等插件的结合使用已经强大到基本取代初中级原画师;原创 2023-03-21 23:38:37 · 19012 阅读 · 20 评论 -
【Unity编辑器扩展】包体优化神器,图片压缩,批量生成图集/图集变体,动画压缩
压缩工具支持对图片原文件压缩(支持png/jpg/webp),也支持使用Unity内置图片压缩批量对图片设置压缩参数。工具预览:图片无疑是游戏资源大户,无论数量还是文件大小占比都非常高。使用TinyPng等压缩工具压缩,近乎疯狂的压缩比,通常可以将图片文件大小降低70%左右。对于Cocos2d-x时代的项目通常都会使用TinyPng进行图片压缩。原创 2023-01-31 23:10:30 · 5591 阅读 · 0 评论 -
【Unity编辑器扩展】扩展Unity工具栏Toolbar, 一键出包/打热更简化打包流程
GF_HybridCLR是基于GameFramework + HybridCLR的一款工具链完善,工作流简洁的游戏框架。拥有标准高效的开发工作流,开箱即用,适用于快速研发。出包时经常遇到忘记刷新配置表、忘记重新打AB包等等,接入HybridCLR每次打热更包也需要重新编译热更dll,新发App时需要生成桥接函数等。各种琐碎的打包准备工作,一旦忘记操作就容易出故障。基于工作中遇到的痛点,迫切需要写一个傻瓜式一键打包/打热更的工具。为了这个一键打包工具入口突出,就把它放在Unity编辑器的Toolbar栏,如图原创 2022-12-06 13:57:57 · 4115 阅读 · 1 评论 -
【UGF】AssetBundle资源加密解密
自定义一个编辑器类AssetBuildHandler : IBuildEventHandler, 继承IBuildEventHandler,实现OnPostprocessPlatform接口,工具打包出AB文件后会回调此方法,在方法中遍历加密AB文件;首先在AB编辑器中,设置所有AB包的加载方式为Load From Memory,此方式会走LoadResourceAgentHelper的ParseBytes(byte[] bytes)方法,需重写此方法处理解密逻辑;原创 2022-08-23 18:45:16 · 1847 阅读 · 0 评论 -
【UGF】GameFramework接入HybridCLR(wolong)卧龙C#热更框架
GF_HybridCLR是已经集成好的GameFramework + HybridCLR开发框架,有着一整套完善的工作流。包含对GameFramework的扩展,数据表生成工具、代码生成工具、热更新工作流,AssetBundle加密解密。并且针对HybridCLR增加了傻瓜式的安装、更新工具,支持一键开关HybridCLR热更新。....................................原创 2022-08-06 16:20:14 · 14484 阅读 · 36 评论 -
【UGF】(二)AssetBundle Tools的使用
UGF BaseComponent默认勾选了Editor Resource Mode, 即在编辑器模式下是直接加载Assets目录下的资源。在非编辑器模式下框架是从AssetBundle中加载资源,所以使用框架加载的资源都需要打包成AssetBundle。使用UGF框架加载的AssetBundle必须是用AssetBundle Tools生成的AssetBundle,因为AssetBund原创 2018-02-02 14:02:08 · 1299 阅读 · 0 评论 -
【UGF】(三)Resource模块的使用及资源热更新
ResourceComponent有两种Resource Mode: Package(单机模式),Updatable(可更新模式)一.Resource Mode: Package(单机模式)单机模式:资源打包后将AssetBundle Builder生成的Package下对应平台文件夹下的资源直接复制到StreamingAssets,资源随游戏一起打包举个栗子:①设置ResourceCompone...原创 2018-02-05 14:46:49 · 3529 阅读 · 3 评论 -
【UGF】(四)自定义框架组件和游戏逻辑事件
毕设项目需要用到UNet,而UNet有大量的回调函数,需要在回调时进行相应的逻辑处理例如匹配房间列表会回调NetworkLobbyManager.OnMatchList(bool success, string extendedInfo, List<MatchInfoSnapshot> matchList), 需要根据回调函数传来的信息进行逻辑处理。如果直接在回调函数中写逻辑代码就会...原创 2018-03-10 15:57:00 · 939 阅读 · 1 评论 -
【UGF】(五) GameFramework集成tolua热更框架
此博文基于环境:Unity 2017.4.0f1 & tolua-1.0.7.392 & UnityGameFramework 3.1.1GitHub上有个GF集成tolua的示例,地址:https://github.com/GarfieldJiang/UGFWithToLua打开示例,并导入GF框架,如果不出意外的话一定会有报错。报错如图:OK, 还算给力,报错不是很多。报错提示...原创 2018-04-21 11:46:24 · 2665 阅读 · 0 评论 -
【UGF】(一)Procedure、Event的使用及DataTable的创建与读取
我的毕设题目是《MOBA游戏<战地王者>的设计与开发》,相对之前开发过的一些小游戏,这个项目涉及的模块和逻辑过于复杂,需要一个完善的游戏框架管理游戏逻辑和资源,在github上找到两个不错的开源Unity游戏框架uFrame和GameFramework,但是uFrame似乎很久没有更新,最终选择了GameFramework进行学习。GameFramework相关介绍:http://ga...原创 2018-01-31 21:44:43 · 1325 阅读 · 0 评论