Unity3D hot update, support C++ or C#
** 简介 这是一个基于C++, C#简单语法的动态解释语言。目的在于提供一个简单高效,语法灵活的动态解释语言。 它专为游戏开发而生, 是为LUA的替换方案而生。【Wiki】[https://github.com/fcscript/CSharpHotUpdate/wiki]
2019-7-11
完成单步调试,逐步调试,函数内跳转(运行至指定行),可以展开this, Class, List, map修改,可以轻松展开超过10万个以上的节点;
2019-8-11
完成Color32, Color, Rect, Ray等内置数据类型, 完成外部跨平台类的导入功能;
完成C#自动wrap的功能; 增加脚本中List, map与C#中List, Dictionary相互赋值的接口;
增加宿主平台语言与脚本对象数据交互的接口
2019-9-13
完成await异步方法
完成Unity插件导出异步方法
2019-9-22
解决new嵌套问题
增加内嵌struct的new操作符的支持
增加内嵌图形对象的参数构造函数
解决iterator模板的问题,兼容C#泛型写法
2019-9-29
增加JSON的支持
2019-10-06
重新实现对象引用机制,解决class与List, Map, Delegate, IEnumerator之间循环引用的释放的问题
修正StopCoroutine接口空指针崩溃的BUG
修正脚本与C#委托对象赋值不生效的BUG
修改C#导出插件,增加内嵌类的自动wrap
优化字节码文件格式,减少字节码文件与占用内存大小
2019-10-08
增加编译后,自动导出引用wrap类与接口配置的功能,用于发行时精简wrap接口
2019-12-07
增加手动注册wrap掊口的功能,可以将异步接口Task同步化,不使用真正的线程,简化逻辑
2019-12-08
增加脚本字节码加密功能
2019-12-09
修改导出插件,解决委托同参导出后重名的问题
2019-12-13
修改导出插件,修正动态库释放时崩溃的BUG,修正类全局函数没有加类名时,内部调用无效的BUG
2019-12-15
增加IntPtr支持,将脚本对象数据快速传递到宿主平台,让数据交互飞起
2019-12-20
修正脚本若干BUG,修正函数参数错误时编译不报错的BUG,增加Vector2, Vector3, Vector4的隐式转换
2020-07-19
增加Protobuf的支持,目前默认是Proto 3.0
FCSerialize 功能强化,增加读写定长数据的接口,增加PB相关接口
多变量声明支持, 如 int a, b = 3, c;
修正switch(exp), exp不支持复杂表达式的问题
修正class成员map, list的错误初始化导致运行时崩溃的问题
2020-09-05
修正对象赋空指令,空指针访问崩溃的BUG
2020-09-05
增加Protobuf的示例
修正 null == ptr 的编译错误
修改Protobuf的导出功能,修正一个接口导出的BUG
修改CSerialize名字为FCScriteze
2020-09-09
修正if(exp为常数)时的一个编译错误(笔误)
2020-09-13
修改导出插件,增加精简接口导出模式
优化for循环,测试用例大部分性能提升50%
修正一个引擎接口没有导出导致性能测试用例10异常的BUG
2020-09-15
修正class派生,基类名字没有导出,导致在Unity中访问不了的BUG
修正for优化后,就算条件不满足也会执行一次的BUG
增加脚本类成员函数的查询接口
2020-09-26
增加Unity重新编译脚本后的重置事件,解决Unity运行时重新编译后崩溃的BUG
2020-11-14
优化map的查询速度,基本上与LUA同等开销
增加小额内存池,解决脚本中大量小内存动态分配的开销(如动态字符串)
加快编译速度
2020-12-06
调整new操作符,解决部分new表达式的编译错误
增加Protobuf的反射属性,完成Protobuf的全反射读写
2021-01-01
修正协程中中断自己时,调用新协程会导致this指针为null的BUG
修正IOS工程的编译报错
增强工具的调试功能
2021-02-18
重构GC模块,彻底解决自引用,循环引用对象的GC问题
修正调试模块中map节点的显示的问题
优化调试模块,增加引用计数的显示
增加Mac下编译与运行时插件支持
2021-04-11
增加多态的支持,增加虚表
支持父类与派生类的相互转换
增加C#的base关键字支持
2021-04-14
修正Unity2019版本的导出插件错误
2021-04-16
修正Unity2020版本的导出插件错误
2021-04-18
修正Unity2020版本的导出插件错误
2021-04-24
增加Broadcast广播功能
修正C++ ::域名访问成员变量的问题
修正派生类同名变量覆盖无法正确访问的问题
目前同名覆盖变量通过base.变量名的访问部分地方有BUG,只能访问最后一个同名变量
2021-05-09
修正示例导出有部分接口没有导出的问题
修正static变量没有初始化的BUG
修正一些语法解析的问题
2021-05-16
增加List的{}初始化语法支持
优化编译,百万行脚本代码的编译时间优化到1秒以内
2021-05-30
修改虚拟机,增加多实例,多线程的支持
修正for循环条件中多if指令的BUG
增强Broadcast广播功能,增加获取广播类的功能
增加动态调用函数功能System.Call
2021-07-25
优化并增强String::Format,String::AppendFormat接口,支持格式化参数
2021-08-15
增加Excel表的支持,添加转表工具, libfclib_dll.so增加了16k
2021-08-18
修正Broadcast广播参数类型不一致时,没有自动转换的BUG
修正Format无符号整数会转成有符号数的BUG
2021-09-12
修正一个导出wrap接口的BUG
修改测试用例, 恢复到最初的版本,方便对比不同版本的性能
小幅度优化解释器,略微提升性能
2021-10-07
修正mac机器上Unity3D编译脚本会导致运行时崩溃的BUG,发现是在C++层后台线程调用C#回调接口导致
原因不明,尽管是加了锁,发现还是会崩溃, 改成主线程调用就好了, 问题函数GetResult,CompilerPrint
2022-02-28
删除一些冗余接口,优化了C#侧调用脚本的性能
修正一个Runtime时期,脚本对象为空指针时,访问成员变量崩溃的BUG
增加全反射访问接口
完成UE4插件
支持C++或C#侧的模板类,可以在脚本中使用宿主语言的模板类
2022-05-04
增加Proto与Json互转的功能
增强模板的语法解析,并修正一些语法解析错误
修正一个对象GC的BUG
2022-07-10
完成UE插件脚本与蓝图接口的互调功能,完成蓝图函数重载,脚本挂载功能,主体功能已经全部完成
2022-07-10
修正部分语法编译错误
增加命令行编译工具fc_cmd.exe
增加Wrap类二元操作符重载
增加map的初始化赋值
增加List,Map += 操作符,增加Clone接口
2022-07-31
修正UE插件的一个类型转换错误
修正脚本调用UE蓝图全局函数的一个崩溃
2022-08-07
增加字符串三个接口Match, MatchNext, ReadLine
优化字符串Append,缓存不足时改成倍增内存分配,解决巨量字符串连接的性能问题
增加C API桥接函数的导入声明的解析
2022-08-21
修正case非连值时, default分支跳转错误的BUG
修正for循环控制变量如果是函数引用参数时,没有输出引用的BUG
修正String的Match,MatchNext的BUG
修正单个字符常量与单个字符串常量相同时,编译函数匹配错误的BUG
2022-08-21
修正UE插件的一个属性访问崩溃
2023-12-10
增加struct支持,目前只支持基础类型,暂不支持函数
增加namespace支持
优化class内存占用,取消变量描述符
修正class成员访问表达式优化不生效的问题
修正虚拟机释放时,List,Map全局变量没有释放的问题
增加partial字段,支持分类
2024-03-16
UE插件强化,增加动态类型自动转换功能,增加内置struct对象