Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

fcscript/CSharpHotUpdate

Folders and files

NameName
Last commit message
Last commit date

Latest commit

History

203 Commits

Repository files navigation

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对象

Releases

No releases published

Packages

No packages published

AltStyle によって変換されたページ (->オリジナル) /