- 博客(24)
- 收藏
- 关注
原创 Unity的AB包管理策略 (四)
如果是文件夹打包,就按照文件夹名字打AB包,如果是文件夹下每个资源打包,我就按照每个资源名字打为AB包。因为唯一需要保证就是每个Asset不重名。保证Asset名唯一的方法很多,做编辑器工具检查或者分配ID即可,或者采取相对路径法,截取部分相对路径(这个不利于策划),综合考虑我采取编辑器工具检查,如果有重名的资源会提示出来,让开发者自己去修改。上一节讲述了几种打包策略 我的打包策略是采用基于文件夹的打包方式,然后每个叶子文件夹为资源管理单位,内部可以选择每个叶子文件夹下资源全部打为一个包或者各自单独打包。
2023-12-12 11:56:13
566
原创 Unity的AB包管理策略(三)
按照资源类型进行打包在最小包和按照功能模块打包之间,比较均衡,比如多少个图集打成一个AB包,多少个贴图打成一个AB包,多少个动画状态机打成AB包,但是对于资源的管理就需要谨慎点,因为可能不同模块都需要使用同一块儿资源,不能随意卸载,但是更改的东西多了,下载的大小也会随之增加,所以这个也需要把握好粗粒度。每个功能的配置表打到一块儿。最小包策略是最无脑的,也是比较稳妥的,但是缺点是每次都会更新很多个文件,玩家看起来懵点。shader细分后打在一起,动画状态机打在一起,贴图打在一起,音效打在一起。
2023-12-09 18:02:31
787
原创 Unity的AB包管理策略(二)
假设现在有PrefabA 和PrefabB 他们都引用了贴图C,此刻我设置AB包,将PrefabA 的AB包名设为A,PrefabB的AB包名设置为B,贴图C不设置AB包名字,那么生成AB包的话A和B打为AB包后,A和B两个AB包都会包含贴图C,此刻就造成了AB包冗余。接上文,两个AB包打入同一份资源我们肯定不能接受,这样可能使得项目AB包大小会多上几倍,那么我们把贴图C的AB包名设置为C,那么生成AB包后,会有A\B\C三个AB包,A和B依赖C,此刻就造成了AB包的依赖。
2023-12-06 14:28:22
536
原创 Unity的AB包管理策略(一)
声明:本系列不会讲解Unity的特别基础的概念,面向初中级而不是完全入门者,敬请谅解。Unity在开发过程中,资源加载其实是有3类API:AssetDataBase、Resources、AssetBundle。
2023-12-06 13:15:45
639
原创 基于Unity编辑器开发技能编辑器 (五)
大家请加入qq交流群:756931022 半成品会持续更新在群里、以及可以在群里交流上一节回顾我上一节讲了如何绘制一些边缘的功能,比如轨道轴上创建事件,这些都是在轨道自己的逻辑上去创建的,然后事件层层下发,相当于把关注点拆开了,轨道就负责轨道的事件创建,而事件本身绘制就负责事件的一些显示、点击。今天来讲解时间轴范围的绘制。时间轴范围的绘制首先我们技能编辑器的作用其实就是在编辑器模式下去运行一个技能看表现,而之前也讲过了技能是一个时间轴上不停的滚动去触发一些事件,那么我们就可以知道,时间轴绘制就是需要
2022-05-27 17:36:08
1486
5
原创 基于Unity编辑器开发技能编辑器(三)
上一节回顾上一节我提出了3个问题。1.动画结束,技能就结束了吗?2.1个技能就只有一个动画吗?3.这些轨道是否足以完成技能?1.动画结束技能不一定结束,技能是有自己的时间轴的。比如LOL剑圣的W冥想,很明显剑圣的冥想动作是个循环的,那么我们怎么确定时间呢?策划又是如何能确定回多少秒血呢,这个只能依靠设定一个技能时间,然后在这个时间轴上去设定HitEvent(碰撞事件)来设定回血次数。2.1个技能只有一个动画吗?上面已经回答了,技能与动画无关了,动画只是技能的一个部分,那么说明了技能与动画是1
2022-05-09 20:33:32
1909
7
原创 基于Unity编辑器开发技能编辑器(二)
上一节回顾在上一章中,我提出了两个问题,一个就是为何要单独提出布局,一个是为何要不停的刷新布局。第一个,单独写出一个布局类是因为你会在很多地方去访问这个布局类里面的布局信息,其次统一在一个地方进行修改的话会方便很多,同时也能让人第一眼就看到你的技能编辑器就知道长啥样。第二个不停的刷新布局,是因为你的窗体可以被你去拖拽大小,拉伸,而在我的设计中那些窗体中各个功能的区域都是相对而言的,比如时间轴占了1/2f,那么当你拉伸的时候就会导致这个1/2f是上一次的1/2f,这样会导致表现奇怪,所以需要每帧去刷新。窗
2022-05-08 09:18:59
1445
2
原创 基于Unity编辑器开发技能编辑器(一)
编辑器拓展常见的Unity编辑器拓展使用主要是创建自定义的窗体进行使用,包括剧情编辑器,动画编辑器,技能编辑器等等。最常使用的就是EditorUI,
2022-05-07 10:43:41
4210
5
原创 c# socket.beginsend socket.beginrecive 到底是何时接受 发送
本文鉴于个人水平 可能有误 仅仅做笔记记录之用 还请各位路过的大佬不吝赐教 小弟洗耳恭听研究了几天的异步socket 之前一直对这个异步操作的理解迷迷糊糊的 直到我今天仔细再再读了一遍官方文档 才发现问题的所在。unity3d网络游戏开发 这本书中 罗培羽老师 写了一个简易的异步通信游戏服务器框架 里面采用异步发送时候并没有设置回调函数这个很好理解 就是我不关心他多久发 怎么去发 反正双端都...
2020-04-12 20:17:12
2306
2
原创 《设计模式与游戏完美开发》——第十三周读书笔记
这周来介绍责任链模式。前言:你们肯定都有过这样的例子,比如我有一些问题需要咨询学校部门或者电信公司,但是学校那么多处理部门,你不知道该去打哪个电话,那么你就选择了一个通用的客服电话,打过去,发现这个部门解决不了你的问题,然后他也不知你这个问题是该如何解决,给你提供了下一个部门,你继续打过去,帕拉拉的说了一大堆,然后这个部门也不是负责这个, 你又去打他提供的“可能解决这个办法”的部门,因此你就花了...
2019-12-21 17:57:50
169
原创 《设计模式与游戏完美开发》——第十二周读书笔记
Gof对于组合模式的定义是:“将对象以树状结构组合,用以表现部分-全体的层次关系。组合模式让客户端在操作各个对象或者组合对象时是一致的。”Gof的组合模式中说明,它使用“树状结构”来组合各个对象,所以实现时也包含了“根节点”与“叶节点”的概念。而“根节点”中野会包含“叶节点”的对象,所以当根节点被删除时,叶节点也会被一起删除,并且希望对于“根节点”和“叶节点”在操作方法上能够一致。这表示,这两...
2019-12-16 11:10:38
233
原创 《设计模式与游戏完美开发》——第十一周读书笔记
这周的读书笔记——观察者模式。前言:现在的游戏大部分都是有成就系统的,比如你杀死100个敌人,就会解锁一个新装备,然后或者你收集了多少个道具,就可以解锁什么样的称号,这仿佛成了现代游戏的必不可少的一个功能了,最容易想到的实现方式,可能就把成就系统的不同成就定义成枚举类型,然后在某一个游戏事件的触发点,比如杀死敌人100,会在杀死敌人这个事件函数中,使用枚举类型然后累计成就系统,如果累计大于100...
2019-12-08 21:35:45
150
原创 《设计模式与游戏完美开发》——第十周读书笔记
这一周做一下关于工厂方法模式的原理笔记。前言:在任何一个游戏中,打怪肯定是必不可少的原则,而现在很多的MMORPG里面,怪物也是做的种类越来越多,而这些怪物肯定是游戏运行过程中,动态创建的。而在面向对象编程里面,这些怪物也就是被各自的类,动态生成出来的对象,比如说骷髅小怪——就是由他的父类“骷髅怪”实例化出来的,而在游戏中,生成一个怪物,肯定要生成他的模型,他的初始化位置,初始化AI,初始化能力...
2019-11-29 23:36:15
192
原创 《设计模式与游戏完美开发》——第九周读书笔记
前八周学习了几种设计模式,我现在就之前学的几种设计模式中的一些小问题,进行总结一下。状态模式优点:1.减少错误的发生并降低维护的难度。因为不再使用switch(m_state)来进行判断当前状态,能降低新增状态时候,未能检测到状态(可能忘记写或者写措字)的bug;2.状态执行环境单一化与每一个状态有关的对象及操作都被实现在一个场景状态类里面,这样特别便于修改,以及了解每一个状态对象与其搭...
2019-11-25 17:38:46
194
原创 理解C#拆箱和装箱以及值类型和引用类型对象
前言:之前在学c++就了解过值类型和引用类型,今天看了《深入理解c#第三版》以及查阅了大量的资料,总算勉强深入的理解了c#中这些的内涵,在此做个记录,方便自己复习,同时这篇文章如果能够帮到你,本人深感荣幸。c#数据类型概述首先c#只有2种数据类型,一个是值类型,一个是引用类型。提到数据类型就得说存储的地方,在此先把网上经常流传的一个不是全对的结论放在这里,在后面我会解释他为什么是错误的。...
2019-11-12 23:38:28
374
1
原创 《设计模式与游戏完美开发》——第八周读书笔记
上周我介绍策略模式,这一周我来介绍模板模式。前言:在游戏开发中,比如一个开枪功能,可能是由父类抽象了一个开火方法,把里面的A、B、C等等方法全部写好,然后由子类重写这个方法时候,再根据不同武器,传入不同的参数实现不同效果,这个确实是完成了一种抽象,毕竟调用的是抽象开火,但问题就来了,你如果父类开火方法里面的A、B、C的算法流程或者参数发生改变呢,那么一改起来,所有继承出来的武器类全部要改,因为...
2019-11-11 19:01:26
127
原创 《设计模式与游戏完美开发》——第七周读书笔记
上一周我介绍了桥接模式,这一周来介绍策略模式。前言:在游戏开发过程中,角色是必不可少的一个东西,而只要有角色,那么他就有自己对应的属性,比如性别、体重,这一类通常出现在休闲生活游戏中,而在战斗类型的游戏中,一般出现的是攻击力,暴击率,防御力,法术攻击力,生命值等等。比如现在A和B两个阵营的对手,A和B的属性各不相同,A是有概率抵挡一定伤害,B是有概率额外造成一定伤害。那么我们通常会怎么去写,我...
2019-11-03 11:07:01
228
原创 《设计模式与游戏完美开发》——第六周读书笔记
在上一周的读书笔记中我介绍了中介者模式,本周的读书笔记来介绍一下桥接模式。前言现在流行的游戏都是有武器的。一个游戏不可能让玩家从头打到尾都是一把‘’小手枪‘’。例如,现在特别火的《贪婪洞窟2》和《元气骑士》,其非常核心的一大玩法就是武器系统,里面有多种多样的武器,每把武器都有属于自己的炫酷外观和特效,让玩家非常容易激起收藏欲。而事实正是如此,大部分网游,玩家要么买装备,要么买时装。而在本书中提...
2019-10-24 17:38:19
265
原创 《设计模式与游戏完美开发》——第五周读书笔记
在上一周的读书笔记中,我简单的介绍了单例模式,在本周的读书笔记中我将介绍中介者模式。前言我在之前已经提到过,一个完美的游戏应该是有许多的功能,并且由这些功能子系统组合而成一个完美的游戏。这些子系统有:游戏事件系统、角色系统、背包系统、成就系统、体力系统、战斗系统、游戏状态界面等等。而根据单一职责原则来讲,这些子系统的功能应该比较单一,那么要想实现比较多的功能,可能就需要很多的这些子系统类。在外...
2019-10-10 18:41:57
310
1
原创 《设计模式与游戏完美开发》——第四周读书笔记
在上周读书笔记中,介绍了外观模式,这周的读书笔记介绍单例模式。前言:生活中有许多东西是唯一的,地球是唯一的、太阳是唯一的。而在我们软件开发的过程中也是有很多唯一的东西,例如:服务器端的程序只能连接到一个数据库、只能有一个日志生产器;游戏世界里面也是这样的;同一时间只能允许一个关卡正在游玩、只能同时操作一个角色等等(大部分情况)。而上周笔记中提到的高级的控制面板接口也应该具有唯一性,不然你可以想...
2019-10-05 16:10:49
200
原创 《设计模式与游戏完美开发》——第三周读书笔记
在上一周的读书笔记中,我介绍了状态模式的概念与运用,在这一周的笔记中我要介绍另外一种模式——外观模式(Facede)。前言上一周讲解了状态模式,主要是游戏又很多不同的状态,这些状态(子系统)的相互转换,如果采用常规的一些分支语句方法,会使得效率变得十分低下,因此状态模式可以理解成是控制这些状态转换的开关。但是在游戏里面这些子系统(例如游戏事件系统、关卡系统、角色管理系统)内部是怎么样实现的呢...
2019-10-04 13:43:18
260
原创 《设计模式与游戏完美开发》——第二周读书笔记
在上一周的读书笔记中,我介绍了设计模式的概念、目的是什么。以及最后的最重要的面向对象的七大原则,在这篇读书笔记中,我要介绍其中的两种设计模式:状态模式与外观模式。PS:这本书主要是以一个小游戏《p阵地》作为一个实战例子进行强行拆分,把游戏开发的每一个小部分都套用了一种设计模式,我个人认为这种方式非常好,虽然看着可能很生硬,但是确实是有效果的,但鉴于游戏开发使用Unity引擎及其使用的部分API可...
2019-09-21 23:23:03
477
1
原创 《Unity Shader 入门精要》总结——第二章
PS:本文仅仅是个人理解,如有不足,敬请谅解。本人,目前一个在校大学生,计算机专业,因为个人从小喜欢玩游戏,特别是手机游戏,因此也自己选择了学习Unity引擎。我曾经觉得游戏这东西,在于玩法新奇,道具丰富,功能很多,社交强大,从没有想过画面对游戏到底有何影响。不过自从前一段时间,玩了崩坏学园三时候,那种美轮美奂的特效,以及精美的建模,让我感到非常惊喜。每一次获得一个新角色时候,就感觉像是拿到一款...
2019-09-16 21:27:09
234
原创 《设计模式与游戏完美开发》——第一周读书笔记
PS: 这篇博客仅仅是学校二课要求的自主学习,水平不够,敬请谅解。1. 设计模式的起源设计模式最初是由4位作者:Erich Gamma、Richard Helm、Ralph Johnson 和John Vlissidesr于1994共同发表的著作——《设计模式(Design Pattrens)》所提出的概念,并且由此翻开了面向对象程序设计...
2019-09-15 12:23:38
464
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人