Skip to content
/ ET Public
forked from wqaetly/ET

ET && ILRuntime && xAsset && FGUI

Notifications You must be signed in to change notification settings

1136386803/ET

 
 

Repository files navigation

讨论QQ群 : 474643097

ET论坛

本项目是ET6.0接入ILRuntime代码热更新,xAsset资源热更新,FairyGUI跨平台UI的示例,后续将保持维护状态,与ET同步更新。

接入ILRtuntime教程地址:https://www.lfzxb.top/et-6-with-ilruntime/ (完全仿照ET 5.0接入ILRuntime的思路进行开发的) 但已过时,出于学习的目的,可以前往:et6以5.0思路接入ilrt里程碑 进行查看

当前master采用了一种与上述博客不同的,全新的思路

  • 热更层:当前master会把Model, ModelView,Hotfix,HotfixView打成一个程序集,然后以全热更的方式进行,最大限度保留了ET的结构,方便后续跟进更新
  • 非热更层:Unity.Mono,整个框架的底层驱动,网络协议的收发与序列化都在这里

环境 && 版本

ET的介绍:

ET是一个开源的游戏客户端(基于unity3d)服务端双端框架,服务端是使用C# .net core开发的分布式游戏服务端,其特点是开发效率高,性能强,双端共享逻辑代码,客户端服务端热更机制完善,同时支持可靠udp tcp websocket协议,支持服务端3D recast寻路等等

致命BUG

ILRuntime模式下,如果往一个async ETVoid/ETTask函数中传递Scene参数,并且这个函数最终产生了异常(ETTask.SetException)就会引发崩溃,目前原因仍然未知,请务必避免这种情况的出现!

参见这个Commit:https://github.com/wqaetly/ET/commit/ee5483de2c4f8b9bf053f23ae62eaf504035a306

因为测试用例过于特殊,如果传递除Scene以外的任何值,都不会由于ETTask.SetException崩溃,所以我连issue都不知道要怎么提,只能一直跟进ET和ILRuntime的更新,说不定哪天机缘一到这个致命BUG就好了

其实我是猜测因为ETTask把ILRT的运行堆栈给搞烂了,但是代码翻来覆去也没找到什么缘由,只好作罢(顺带一提,如果开启了ILRuntime的调试服务,即Appdomain.DebugService.StartDebugService(56000); 就不会崩溃了,会卡一下,然后程序继续进行)

TODO && Features

项目截图

项目热更新演示

引用

ET 6.0学习笔记

状态帧同步Moba,包含基于双端行为树技能系统

ET框架视频教程-6.0版本

91焦先生ET-ILRuntime

About

ET && ILRuntime && xAsset && FGUI

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages

  • C# 71.0%
  • ASP.NET 13.5%
  • Lua 4.1%
  • C 3.6%
  • JavaScript 3.0%
  • TypeScript 2.7%
  • Other 2.1%