2.3k 2 分钟

# 前言 在我们项目中,资源打包主要通过 AssetLable 的功能对需要打包的对象进行搜集: 按照指定规则设置资源的 AssetLable ,然后通过 AssetLable 再分类搜集资源,采用自定义容器管理资源引用,设置 AssetBundleName,最终出包。 在对代码走了一个流程后,将流程大概流程记一下,做做记录。 # 标签功能 在 Unity 搜索栏输入『l:Name』可以直接查找到所有指定标记的资源 例如: 代码中通过 AssetDatabase.FindAssets 获取所有指定标签资源 例如通过该功能获取所有标签为 “Name”...
5.1k 5 分钟

这几天给项目做了一个自动创建新兵种的工具,只需要提供符合规则格式的图片,即可一键自动生成新兵种战斗模型、布阵模型动画。 # 前言 工具: Unity3D 2017.4.28f1 TexturePacker 3.0.9 # 战斗模型 我们项目这个版本 (2.2.0) 策划加了新兵种需求,根据兵种的进化情况,战斗中的兵种模型也是需要进行更换的。 之前项目整个旧兵种也就固定的那几个,在拿到第一版的资源后,查了下并尝试了手动创建方式,还是有点麻烦。 手动操作步骤如下: 复制一份老兵种 复制对应美术路径兵种图片到新目录 用 Texturepacker 打开,改生成图片、Json...
3.3k 3 分钟

# 前言 上一篇文章 『锁』帧同步的简单实现 写了实现一个简单『帧锁定同步』的过程。 下一步按照正常流程来说,应该是整一个 『乐观帧锁定同步』,不过在选择继续使用个人网络小框架,还是使用开源的 ET 框架的选择上出现了一点点分歧: 如果使用个人网络小框架,那么就跟上一篇文章的 锁帧同步 实现流程类似,反正主要就是把这个『功能』实现,而不会去考虑其他。 『其它』是指什么呢?角色、场景、以及好一点的『表现』。 最后差不多也就是一个简单的 Demo,几个方块『人』受玩家操作,在场景走一走,打一打之类的。 而如果采用 ET...
9.2k 8 分钟

# 前言 锁帧同步,据说是以前局域网联机游戏常用的一种同步方式,其原理是每帧 (或者指定间隔) 同步同一个『房间』的玩家操作指令,由于玩家们的初始状态相同,后续操作变化相同即可实现一致性表现。 缺点是由于每次都必须等待所有玩家指定都收集完成,才算这一帧 (次) 完成,然后将指令列表同步给所有玩家,因此网络不好的情况下会导致一人卡顿而众人卡顿 —— 因为就算不卡的人,也得等待网络最差的人指令上传完毕,才能进行下一次更新。 本次使用到的工具主要有: Unity2020.1.0 Box2DSharp KCPSharp C# 服务器同样采用 C#,.NET Core3.1,物理系统为...
676 1 分钟

# 前言 一般在开发项目的时候,为了便于管理,都不会直接把代码建立到 Unity3D 中,而是使用第三方工程,然后编译成 DLL 放进来使用。 今天我就碰到个问题:死活无法调试这个 DLL,算是愁了一天了。 打断点就提示『当前不会命中断点。找不到相应位置』表现就像如下: 想想代码调试不了,就非常愁。 而搜索的话,Unity 相关有用的信息现在也是越来越少,一连好几页结果翻下去,都是摸不着点的。 先后试过: 选项 -> 调试 -> 符号设置 选项 -> 调试 -> 去掉『启用 "仅我的代码"』 选项...
5.5k 5 分钟

# 前言 上文 关于手游战斗系统 提到了作为一个独立的战斗系统,前后端可能都是需要运行的,因此物理系统自然不能使用前端引擎自带的,本文介绍了一下 Box2DSharp —— 一个 Box2D 的 C# 版本。 # 简介 在 Box2D 中,一个 World 代表一个物理世界。 其中,一个完整物体,分为 Body、Shape、Fixture Body:代表一个对象 Shape:形状 Fixture:负责将形状 Shape 与对象 Body 连接 一个 World 需要实际『动』起来,就需要调用其 Step 进行更新,Step...
2.7k 2 分钟

本文不涉及任何实际实现,仅为个人目前看法。因此可能也会有所不对的地方,若有问题还请指正。 # 前言 这里特指网游,且非状态同步战斗类型。 主要指:房间类 或 挂机类,且有玩家数量限制。 之所以单独提出这两种类型,是因为这两种类型战斗 (/ 服务器) 是可以独立形成一个系统,而像状态同步类型游戏则不同,因为随时可以战斗或进行其它操作,战斗本身与正常游戏流程逻辑也会是有一定耦合的。以前那些 MMO 端游一般就是这种模型,这种类型个人没作过多研究,猜测如此。 而 房间类 或 放置类 则不同,一般来说,都会有一个独立的战斗服务器,无论是仅仅作数据分发,还是逻辑演算或本身就跑了一个完整战斗系统。 #...
9.1k 8 分钟

本文主要介绍 UDP 及 KCP 通讯的一个简单使用,目的是为『帧同步』战斗的实现作一个前置准备。 # 前言 之前不是提到了帧同步么,在那之后,或者说那时候就有想自己实现一个完整的帧同步战斗。不过后边又忙了忙项目任务,加上其它一些事情,也就搁置下来了。这两天项目 2.1.0 版本任务差不多,并且也开始出包了。今天周六,加班主要是给测试出出包,于是就想利用空余时间整理下,顺便写写东西。 帧同步战斗对网络性能要求一般会比较高,因为很『怕』延迟,所以一般都会采用 UDP 协议进行数据传输,后面有了 KCP 之后多了个选择 (听说)。当然,不排除也有的游戏直接用 TCP 作为通讯协议,因为 TCP...
1.6k 1 分钟

这篇总结本来打算前天,也就是端午节的第一天就写完了。 结果... 忙着折腾给博客添加 live2D 去了,今天,也就是刚才算是将 live2D 相关内容 Post 上去,并且把 为博客添加 Live2D 看板娘折腾的那些事 那篇文章写完。 今天这篇总结也是,先写一点占个坑,不然再不睡,怕是药丸。 端午的时候,笔记本电脑上的 win10 又给我自动更新,结果更完了之后启动不了了。系统直接给我更烂,后面花了不少时间来重置电脑。重置完电脑,第三件事就直接把更新服务关掉。 好了好了,又是... 半年过去了,看了下上一篇去年的总结是 1 月 6...
7.2k 7 分钟

之前偶尔就会在别人的博客上看到 Live2D 看板娘效果,就... 有点眼馋了。 于是就想: # 前言 本来昨天就在想,将 live2D 相关的东西都弄完,然后将本篇文章写完,以及再写个『年中』总结。 结果果然是人算不如情况,预期总是与实际有所差异,昨天整了一天 live2D。 主要是到处找模型,然后挑选看得上眼的,以及写些自定义修改代码花的时间有点长。 另外为了方便本地预览模型,还整了两个 Python 脚本来辅助,一个用于批量重名名,将入口 json 文件重命名为...