提取LOL模型,动画,音效,贴图,UI到Unity的完整流程
前言
这阵子要着手做技能系统了,但苦于没有好的美术资源,直到有一天,我学会了提取LOL的资源。。。
工具准备
链接:https://pan.baidu.com/s/1DsWbUJs_vdCdP3Zz5M7QDg 提取码:wlwr 复制这段内容后打开百度网盘手机App,操作更方便哦
视频链接
https://www.bilibili.com/video/av54407596
C#篇:扩展C#中的异步方法
本文翻译自
https://blogs.msdn.microsoft.com/seteplia/2018/01/11/extending-the-async-methods-in-c/ 在前一篇博客文章中,我们讨论了c#编译器如何转换异步方法。在这篇文章中,我们将关注c#编译器为定制异步方法的行为提供的扩展点。 有三种方法可以控制异步方法的机制: 1.在System.Runtime.CompilerServices中提供您自己的async方法构建器。 2.使用自定义task awaiter。 3.定义自己的任务类型。
自定义在System.Runtime.CompilerServices命名空间的类型[toc]
从上一篇文章中我们知道,c#编译器将异步方法转换成一个生成的状态机,它依赖于一些预定义的类型。但是c#编译器并不期望这些已知的类型来自特定的程序集。例如,您可以在项目中提供自己的AsyncVoidMethodBuilder实现,c#编译器将“绑定”异步机制到您的自定义类型。 这是一个很好的方法来探索底层的转换是什么,看看在运行时发生了什么:
123456789101112 ...
GameFramework篇:个人笔记汇总
视频教程地址
GF视频教程地址
官方示例StarForce学习笔记
https://www.lfzxb.top/gameframework-starforce/
框架基本理解以及源码下载
https://www.lfzxb.top/gameframework-base/
新项目使用GameFramework框架需知
https://www.lfzxb.top/gameframework-fornew/
自定义事件并订阅的流程
https://www.lfzxb.top/gameframework-diyevent/
资源热更新讲解
https://www.lfzxb.top/gameframework-reshotfix/
网络模块使用示例
https://www.lfzxb.top/gameframework-network/
存档模块使用示例
https://www.lfzxb.top/gameframework-setting/
VFS讲解
https://www.lfzxb.top/gameframework-vfs/
GameFramework篇:框架基本理解和源码下载
先偷偷观察一下E神的GitHub
只有三个项目,尽管如此,我还是感受到来自E神的压迫感。
我们再来看一下官网的描述
什么个意思呢?
我们先看UGF
可以看到有GameFramework的dll文件,那么它是从哪来的呢?
它来自GameFramework
再看UGF的Scripts,里面就是UnityGameFramework.Runtime和UnityGameFramework.Editor模块啦
我们可以这样理解,GameFramework是完全和Unity分离的的,由它衍生出与Unity相交互的UnityGameFramework,这也是我们在Unity中使用GameFramework框架必不可少的部分,我们可以把UGF当成平时使用的插件。最后UGF和Unity相结合,就做出游戏啦~
然后就是演示Demo——StarForce(一目了然)
然后我们要把这三个项目都下载
为什么全都要呢,因为我们平时学习肯定要顺藤摸瓜来看代码实现而,GF是GF.dll的来源,也就是最终源码,相对于反编译dll,我更习惯于直接看源码~所以三个都不能少
打开StarForce项目 ...
GameFramework篇:自定义事件并订阅的流程
自定义事件并订阅
正如木头大佬所说
在GF里面创建和使用自定义事件还是比较容易的
这里举个例子
我们进行场景切换,要加载完下一场景所有资源才能切换吧,不然黑屏是什么鬼
这里我是切换场景后,开始生成多个实体,所有实体生成完毕,关闭过渡UI,显示游戏界面
创建
这个事件类里面的变量可以随意定义(至少要包括Clear()方法和Id变量)
其中Fill()函数是用来填充事件类里面的数据的(可有可无,视情况而定),将LoadNextResourcesSuccess设为true
定义好了事件,我们要怎么使用呢
先订阅
HideUI为回调函数的名称,参数必须为(委托的原因)
在最后一行执行Fire,意为抛出事件,所有订阅这个事件的回调函数都将被执行
最后,用完了,要放回去,取消订阅(在UI关闭的时候)
总结
在GF里自定义事件主要分为以下步骤
创建自定义事件
订阅自定义事件并指定回调函数
达成条件,抛出事件
取消订阅 其实我们不难发现,GF的内置事件执行流程也和这大致一样,不过更复杂点就是了,大家可以自行查看内置事件,循着源码过一遍,就理解了
GameFramework篇:Network模块使用示例
Network模块
连接ET服务端
前言
过了那么久,我又回来了,因为我开始研习服务端了(欠的技术债总要还的),因为GF已经越来越熟练,并且使用过程中也十分稳定,所以我已经决定了,使用GF做客户端,至于服务端,因为对于中大型项目,服务端框架也必不可少,我选择了ET(另一个很强大的框架,是双端的链接:https://github.com/egametang/ET)。
项目工程下载
既然要学习,那就要一个案例,身为服务端小白,我是写不出什么案例的,E大的StarForce中的Network功能已经做了示例,但是木头大佬已经讲解过了,我就没必要再说一遍了,链接http://www.benmutou.com/archives/2630,那么用啥案例呢?这就要请出我们的毛毛大佬了,奉上GayHub https://github.com/Maomao110/StarForce
下载之后,需要下载submoudle,不然会报错,不会的同学可以参考这篇的下载方式 https://blog.csdn.net/qq_15020543/article/details/86774781
至于ET,我 ...
GameFramework篇:资源热更新讲解
资源热更新步骤
准备工作:
StarForce dev/Update分支 https://github.com/EllanJiang/StarForce/tree/dev/Update 注意下载子库
** HFS的下载,作为文件服务器 http://www.rejetto.com/hfs/?f=dl**
在这个分支里,E大已经写好了完整的更新流程
具体细节就是
ProcedureCheckVersion流程
声明更新版本更新配置表回调函数
订阅添加WebRequest任务请求的成功与失败事件
添加WebRequest任务请求
添加WebRequest任务请求成功,执行订阅的事件,反序列化为VersionInfo类(包含版本信息以及更新细节),如果为强制更新,就跳转到下载网页下载船新客户端(你没有体验过得船新版本),如果为热更新,就配置下载文件地址,校验本地客户端和下载到的版本资源列表版本号,如果一致,说明不用更新,直接进入下一流程,如果不一致,说明需要更新版本资源列表,更新成功后,进入下一流程。
ProcedureUpdateResource流程
初始化相关数据,检 ...
GameFramework篇:Setting(存档模块)使用示例
存档模块
存档模块的简单使用
GF自带了Setting模块,以键值对的形式存储玩家数据,对 UnityEngine.PlayerPrefs 进行封装。
主要的API在DefaultSettingHelper里面
其中Load功能是个空方法,并没有写,需要大家自己去写,一想也是,每个项目数据结构都不一样
下面是个简单的例子
然后大家根据自己项目需要再对此模块进行封装即可
GameFramework篇:VFS详解
GF的VFS
简介
虚拟文件系统(VFS)使用类似磁盘的概念对零散文件进行集中管理,优化资源加载时产生的内存分配,甚至可以对资源进行局部片段加载,这些都将极大提升资源加载时的性能。
官方文档:https://gameframework.cn/document/filesystem/
前置知识:计算机操作系统磁盘相关知识
原理
通过将许多小文件集合成一个大文件的方式来集中管理零散资源,减少物理磁盘寻址次数从而得以提高性能,并且这个过程是我们自定义的,可以进行加密操作,提高安全性。
学习方式
环境准备
先去下载最新的Starforce:https://github.com/EllanJiang/StarForce,以及Gamrframework:https://github.com/EllanJiang/GameFramework
然后使用我们下载的Gamrframework源码去替换Starforce中的Gameframework,传统艺能了,还不知道怎么操作的小伙伴可以去:https://www.bilibili.com/video/BV14E411a71o
VFS只有在开 ...
ReGoap(目标导向的AI系统)中文文档
前言
昨天听群友提到了GOAP(Goal Oriented Action Planning)目标导向的AI系统,百度稍微了解了一下,看起来要比行为树高级一些,所以今天来好好研究一下,看看他的庐山真面目。 因为国内资料较少,所以就准备去Github找一下。就找到了这个库:https://github.com/luxkun/ReGoap。 本篇文档对于Goap本身介绍并不多,想要详细了解的可以去看FEAR在GDC做的分享:https://www.lfzxb.top/gdc-sharing-of-ai-system-based-on-goap-in-fear-simple-cn/ 或者去这个网站了解GOAP更多相关内容:http://alumni.media.mit.edu/~jorkin/goap.html 我的Goap开源库(多线程,JobSystem,路径规划算法优化):https://gitee.com/NKG_admin/NKGGOAP 出于学习的目的,我来翻译一下它的Readme。文章中的一些链接将省略。 注:
正文中的规划/计划系统字样一般都可以当做GOAP系统。
正文中 ...