自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(13)
  • 收藏
  • 关注

原创 【DOTS】基于DOTS的BUFF系统实现 (完全版)

使用DOTS实现一个比较完整的战斗BUFF系统,可以通过外部配置数据进行buff初始化等

2024-01-17 16:18:07 627

原创 【DOTS】基于DOTS的BUFF系统实现

言归正传,想实现buff系统首先分析一下buff的定义,这样才能知道它需要实现什么功能。我对buff的定义就是,一个有生命周期、能触发事件的标记这里可以将一次攻击简单理解成 “给敌人上了一个buff,这个buff的效果是:在OnStart的时候对自身造成x点伤害,持续0秒”中毒的话,则是“给敌人上了一个buff,这个buff的效果是:持续10秒,每秒造成10点伤害” -,- 这是一个比较正常的buff了再比如减速buff:在OnStart时减少x点移速,OnEnd时恢复x点移速,持续10秒。

2024-01-04 23:02:31 459

原创 【DOTS】 01_生成cube并随机移动

4、创建ChangeCubeMoveDirSystem.cs,根据倒计时间隔,随机修改移动方向。1、构建一个CubeMoveAuthoring类,用于将数据拿进ECS。3、创建SpawnerObjSystem.cs用于生成Cube。5、创建CubeMoveSystem.cs让cube移动。十万个Cube,没使用job,能跑45~50帧。2、创建一些需要的ComponentData。

2023-12-07 10:51:36 113

原创 【DOTS】环境与配置

注意:Entities工程,需要使用URP或HDRP管线创建的工程。Unity 版本:2022.3.0 LTS。

2023-12-07 10:45:14 83

原创 【DOTS】Unity DOTS Entity常用组件类型说明

共享组件根据其共享值,将Entity分组到相同区块中存储,这有助于消除重复数据。Unity将具有相同共享组件值的所有Entity存储到一起,这将会删除Entity之间的重复值。可以创建托管或非托管的共享组件,他们有着同样的限制与优点。你可以在IComponentData和IBufferElement Data组件上使用enableable组件,在运行时禁用或启用实体上的各个组件。要使组件可启用,可以从IEnableable Component继承它们。

2023-12-07 10:35:54 518

原创 【Addressable】关于开启ProfilerEvents后导致自动清理缓存报错问题

今天本来想看下加载的信息,开启了这个信息收集的功能,之后更新时报错,看了log并且打断点跟了下,发现是AA在执行清理缓存的Operation时,在任务完成时,先清理了持有的依赖的AsyncOperationHandle,然后又在基类的Complete方法中收集信息时,访问了其依赖的AsyncOperationHandle并递归访问其依赖的依赖,但由于其依赖已经被释放,无法访问到依赖的依赖,则抛出异常。...

2022-07-25 15:37:23 1951 1

原创 基于Addressable实现资源版本管理 (一)

文章目录前言一、资源版本管理二、清理缓存文件总结前言最近在学习Addressable相关的内容,大概翻了翻文档,也查阅了一大堆资料,对其算是入门了。这里记录一下遇到的坑和一些关键问题的解决方案一、资源版本管理addressable自身是没有版本管理这个概念的。官方提供了一个CCD的解决方案,可以直接进行版本管理,这里给一个链接:Unity官方CCD介绍那么我们如果要自己做一个版本管理,应该怎么做呢?这里不实际给代码了,只提供思路。首先我们需要一个版本号,这个版本号有以下作用:判断更新:

2022-03-16 22:58:02 2693

原创 浅谈Unity自带的单元测试工具 以及this关键字拓展方法

浅谈Unity自带的单元测试工具 以及this关键字拓展方法一、单元测试的定义与作用单元测试定义:单元测试在传统软件开发中是非常重要的工具,它是指对软件中的最小可测试单元进行检查和验证,一般情况下就是对代码中的一个函数去进行验证,检查它的正确性。一个单元测试是一段自动化的代码,这段代码调用被测试的工作单元,之后对这个单元的单个最终结果的某些假设进行检验。单元测试使用单元测试框架编写,并要求单元...

2019-12-03 17:12:02 899

原创 代码结构及质量

代码结构及质量一、为什么要说说代码质量最近笔者在工作中遇到了一些小问题,先是同事一个一个离开,导致这个项目现在只剩我一个人。笔者很苦恼,也问过他们几个为什么离开,回答的大同小异,但是都提到了一个词:代码质量。对于刚刚开始工作的笔者并不是很了解这个词所代表的含义,同时心里还有很多疑问,代码质量怎么了?看起来也没什么问题啊。抱着这个心态,笔者又浑浑噩噩的过了2个月,依旧每日完成着策划给的需求,...

2019-12-03 17:09:32 149

原创 如何分析源码 (一)

如何分析源码一、系统先要会用,要搞清楚整个功能。直接看示例文件根据使用的API入手看看有什么属性,分析他实现的步骤及猜测确定功能相关数据结构查看模块的划分,猜测其每个系统的功能。建立宏观视角,不要直接陷进代码中,否则会花很长时间。序列化:反射显示、存储、数据->对象序列化根据模块去查看示例代码,并实现的效果记录Utils : 一般都是一些工具方法,是直接...

2019-12-03 17:06:04 1440

原创 学习笔记(三) 简单的状态模式&FSM有限状态机框架的实现(二)

之前发布的那篇博客可能说的并是不非常清楚,所以整理了一下,也参考了一些文档,于是又写了一篇总结。一、有限状态机FSM的要点1、拥有一组状态,并且可以再这组状态之间进行切换。2、状态机同时只能存在一个状态,英雄不能能同时处于跳跃和站立。而防止这一点就是使用FSM的理由之一。(类似于动画状态机)3、一连串的输入或事件被发送给机器。(这句话的意思就是,在使用的很多的情况下,要使用FSM状态机)...

2018-10-19 16:01:51 838

原创 学习笔记(二) 简单的状态模式&FSM有限状态机框架的实现

首先在我们讲我们的主角之前,先来看一张图。你的第一反应是什么?哇,好大一张蜘蛛网!而事实上它连蜘蛛网都不是。在制作游戏的过程中,动画是必不可少的东西,Unity的新版动画系统已经很好的帮我们解决了动画管理难的问题。但是它虽然方便了我们,但同样不可避免的出现了某种意外,也就是上面所示的“蜘蛛网”的状态。当然,虽然出现了这种情况,也并不是没有解决方案的,也就是我们接下来所说的FSM有限状态...

2018-10-19 12:58:02 1100

原创 学习笔记(一) 委托实现&消息中心

委托是什么&为什么要用委托?在游戏中,每一帧都会有很多的事件发生,例如地雷爆炸啦、增加金币啦,甚至玩家等级的提升、GameOver都属于某种事件的触发。很好,我们提到了触发。那什么是触发呢?从字面意思来看,触发就是触碰到了某个条件,将要发生某件事情。对了!将要发生某件事情!当我们达到了触发的条件而触发了某个事件之后,这个时候,事件就会被事件的监听者响应,从而去执行自己在这个状态下要...

2018-10-18 22:17:05 1222 1

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除