[Game Framework之StarForce解读]01.StarForce下载运行

最近木头打算研究一个很厉害的Unity3D框架——Game Framework。 虽然我还没有开始研究,但是,感觉起来是非常厉害的,所以我想研究一下。 由于作者非常忙,导致框架的文档奇缺,想要研究这个框架,只能一步步看源码。 作者写了一个Demo项目——StarForce,依旧是没有文档说明,所以我打算一边研究这个Demo,一边分享教程。 那么,我们从下载和运行开始吧!

  1. 首先下载StarForce工程:GitHub - EllanJiang/StarForce: This is a demo made with Game Framework.
  2. 下载完之后,用Unity打开工程文件夹,然后运行…你一定会发现一堆编译报错,是的,这是作者故意的(逃)(来自2019年的补充说明:UnityGameFramework是子模块,需要把子模块的代码也一起拉取,关键字:git submodule。如果不想了解git的子模块,则按照本文的做法处理即可)
  3. StarForce工程缺少了UnityGameFramework,到这里下载:GitHub - EllanJiang/UnityGameFramework: This is literally a game framework, based on Unity game engine. It encapsulates commonly used game modules during development, and, to a large degree, standardises the process, enhances the development speed and ensures the product quality.
  4. 下载完之后,把UnityGameFramework复制到StarForce工程的Assets目录下即可
  5. 然后就可以编译运行了,注意,游戏启动场景不是mian,也不是menu,而是下面这个家伙:

注:Game Framework的作者水平自不用说,就是框架的文档写的很烂。我们不要抱怨,毕竟是开源的,能有机会学习到强大的框架,我们应该感到庆幸。 记住,不要对作者有任何抱怨,那是不道德的。 (那个,本系列教程不定时更新...)

 

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
下面是一个较为详细的StarForce_ILRuntime热更新教程: 1. 安装StarForce_ILRuntime插件 首先,在Unity编辑器中打开Asset Store,搜索并安装StarForce_ILRuntime插件。安装完成后,你会在Unity的菜单栏中看到一个名为“StarForce_ILRuntime”的选项。 2. 配置热更新工程 在Unity中,我们需要创建一个专门用于热更新的工程,这个工程需要包含一些必要的文件和目录,具体包括: - Hotfix目录:热更新的代码放在这个目录下,这个目录的名字和位置可以自己定义。 - AppDomainConfig.txt:存放ILRuntime的配置信息。 - Hotfix.dll:热更新代码编译后生成的DLL文件。 3. 配置ILRuntime 在热更新工程中,我们需要对ILRuntime进行配置,具体包括: - 配置AppDomainConfig.txt:这个文件中包含了ILRuntime的一些配置信息,比如要哪些DLL文件,哪些类型需要注册等。可以参考官方文档进行配置。 - 注册需要热更新的类型:在热更新工程中,我们需要手动注册需要热更新的类型,这些类型通常是游戏逻辑相关的类型,比如游戏控制器、模型、UI等。可以在代码中使用ILRuntime的RegisterCrossBindingAdaptor方法进行注册。 4. 编写热更新代码 在Hotfix目录中编写需要热更新的代码,代码的编写方式和普通的C#代码基本一致。需要注意的是,在热更新工程中,我们不能使用Unity的API和类型,需要使用ILRuntime提供的跨域适配器进行映射。 5. 编译热更新代码 在热更新工程中,我们需要使用ILRuntime提供的工具将热更新代码编译成DLL文件,并将DLL文件和其它资源文件一起打包成一个AB文件。具体的打包方式可以参考官方文档。 6. 加载热更新资源 在游戏运行时,我们需要加载热更新资源,具体步骤如下: - 使用AssetBundle.LoadFromFileAsync方法加载AB文件。 - 使用AssetBundle.LoadAsset方法加载DLL文件,并调用ILRuntime的CLRRedirection.AddReference方法添加引用。 - 使用AssetBundle.LoadAsset方法加载热更新代码的入口类,并调用ILRuntime的AppDomain.Invoke方法执行入口方法。 7. 注意事项 在使用StarForce_ILRuntime进行热更新时,需要注意以下几点: - 热更新的代码不能使用Unity的API和类型。 - 热更新的代码需要使用ILRuntime提供的跨域适配器进行映射。 - 热更新的类型需要手动注册。 - 热更新代码的编译和打包需要使用ILRuntime提供的工具。 - 加载热更新资源时需要注意依赖关系。 希望这个教程对你有所帮助。如果还有问题,请随时提出。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值