Giter Site home page Giter Site logo

fcscript / csharphotupdate Goto Github PK

View Code? Open in Web Editor NEW
134.0 11.0 26.0 236.76 MB

Unity3D hot update, support for C++ or C#

Home Page: https://github.com/fcscript/CSharpHotUpdate/wiki

HTML 0.68% C# 71.95% C++ 24.67% C 2.67% Batchfile 0.02%
hot update lua csharp unity3d fix patch unity

csharphotupdate's Introduction

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

csharphotupdate's People

Contributors

laishikai avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

csharphotupdate's Issues

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.