GameFramework_HybridCLR
全部标签前言目前流行的一些开源的网络框架有很多,我自己也手写过网络相关的模块。但是当我看了GameFramework的网络框架,还是眼前一亮的感觉。他的封装继承体系真的非常值得我们细细去品味,去学习。今天就和大家拆解一下GameFramework的网络框架的使用。NetworkManager结构NetworkManager只负责维护NetworkChannel,实际的有种我们简历网络连接的也是NetworkChannel作为一个网路频道,这样管理起来比较方便,比如:一个游戏可能有多个网络连接,那么我们建立多个网络频道即可,或者当我们一个网络频道断线后,我们可以直接再新建一个,防止数据混乱。namesp
官方地址: 关于HybridCLR(focus-creative-games.github.io)Win下打包时遇到xxxx\il2cpp\libil2cpp\utils\Il2CppHashMap.h(71):errorC2039:'hash_compare':isnotamemberof'stdext'这是.net7发布后最新版本vs改动打破了一些向后兼容性引起。你可以回退2022的旧版本或者使用2019之类的版本。所以建议使用.net6之前的版本进行开发,至少截至目前此问题尚未修复,vs编辑器版本使用vs2019,或是vs2022较老的版本官方-使用IL2CPP和VisualStudio
目录前言:ProcedureBase启动流程ProcedureLaunch场景转换流程ProcedureChangeScene前言: 上一篇中已经成功引入了框架,并且创建了游戏入口GameEntry。本篇的主要内容为创建游戏的启动流程ProcedureLaunch,场景转换流程ProcedureChangeScene(本来要写菜单流程但是最后发现篇幅太大。。。。) (再次强调,本系列笔记偏实践,主要记录使用过程,对于具体的框架讲解可以搜到很多大佬的教程,同时也非常建议自行阅读源码,可以学到很多。) 如果看过StarForce可以看到它里面做了很多的流程,比如版本检测、资源检测
一入热更深似海啊,没有热更是真恼火啊,干啥啥不方便,动不动就得重新发包;说实在的,也是工作之余研究这个,在原有框架基础上接入这个热更,既要保持原有功能,还要支持热更,实实在在、断断续续搞了这么久,终于是接入并测通了,这一路是坎坎坷坷,下面把走过的弯弯绕绕记录下,希望对后来想接入的小伙伴有帮助吧。 其实之前早就有动热更新的心,无奈现在没做游戏了,项目这块基本都是定制开发,所以这块一直搁置,不过之前有考虑过lua和xlua也看过ILRuntime,但是一直耿耿于怀,要用另外一种语言去搞,而且咱又是一直干C#的,而且这几个实现机制都是需要一个独立的vm,编译完在解释一套,而且有
一.前言HybridCLR(代号wolong)是一个特性完整、零成本、高性能、低内存的近乎完美的Unity全平台原生c#热更方案。官方提供了完整的教程:HybridCLR快速上手官方还提供了一个简易的小Demo,演示了如何使用HybridCLR实现热更新。hybridclr_trial官方文档其实已经非常详细了,我写本文目的主要为了记录一下我的接入过程。我们可以下载官方的示例Demo,我们参考Demo更容易理解HybridCLR。二.环境配置第一步环境配置,我们需要把hybridclr_unity插件导入到项目中。方法有很多,官方推荐通过packageManager安装,也可以直接github
本人目前使用过的代码热更方案有XLua和HybridCLR,没用过ILRuntime,目前的项目使用的热更方案是Addressables+HybridCLR,整个热更新的框架由我一手搭建,基本实现了线上Bug无缝修复,用起来还是非常带劲的,在此强烈推荐HybridCLR,至于XLua的总结我可能不会再另外写了。首先需要申明的是,想要做全代码热更是不太现实的,毕竟资源下载这一块的代码是必须写死的,不过只要下载完成,那后续所有的咱们自己创建的代码都可以热更,为啥这里强调是自己创建的代码呢?因为整个项目中我们还会引入其他插件,包括一些Unity注册的模块包(PackageManager里面管理的)就
前言GameFramework中Entity,一般用于游戏运行时动态加载的游戏对象,如角色,怪物,武器,技能,子弹,特效等。一般来说,我们想创建一个实体,最简单的方法当然是Resource.Load()+Instantiate(),然后放到合适的位置,播放合适的动画即可。但是GameFramework却给每个实体定义了一个Entity类,一个EntityLogic类,一个EntityData类,初次用起来会感觉很吃力,甚至有的人觉得完全没必要,甚至放弃了GameFramework。这也是很多新手不理解GameFramework的Entity模块的原因。我们今天来给大家详细分析一下GF这么做的好
[Unity实战][C#实战]HybridCLR卧龙C#热更框架v2.0.x-Unity2020.3.21f11.官方文档2.无缝简单接入2.1安装unity2020.3.21f12.2安装HybridCLR2.3加入测试的代码2.4HybridCLR->CompileDll3.简单测试热更dll的效果4.Github5.TODO-Assetbundles/安卓下载+替换热更dll实现完全热更1.官方文档官网介绍HybridCLR(代号wolong)是一个特性完整、零成本、高性能、低内存的近乎完美的Unity全平台原生c#热更方案。HybridCLR扩充了il2cpp的代码,使它由纯AOT(o
一.前言FSM(有限状态机)是一种在游戏编程中非常常用的编程技术,可以方便地管理游戏中的各种状态转换。在Gameframework中,FSM也被广泛使用,并且该框架提供了方便易用的FSMAPI,使得我们可以在Unity项目中快速实现FSM逻辑。二.什么是FSM有限状态机(Finite-statemachine,FSM),又称有限状态自动机,简称状态机,是表示有限个状态以及在这些状态之间的转移和动作等行为的数学模型。在游戏开发过程中,有限状态机的用处是非常广泛的,已经被提升为一种编程思想,用于简化各种复杂的问题,比如:AI的攻击行为,游戏流程控制,角色技能状态等等。我们来看一个简单的FSM模型:
GF资源加载流程图GF加载资源简介ResourceManager持有某个功能例如ResourceLoader(资源加载),ResourceLoader持有TaskPool,TaskPool持有agent,agent持有helper,真正执行操作的方法是存在helper中。ResourceManager:IResourceManager缓存资源组和已经加载过的资源。可以获取资源的版本编号和相关的路径地址,还有一些版本更新和资源加载的函数等等。如何从asset名索引到对应bundle名下面信息从描述文件获得,把GameFrameworkVersion.dat文件中的bundle,asset,ass