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

Releases: vimfung/LuaScriptCore

Release 2.4.0

21 Apr 02:07
@vimfung vimfung

Choose a tag to compare

更新内容:

  1. 新增线程执行功能,可以通过LuaContextrunThread方法将一个lua方法执行在不同的线程中。
  2. LuaValue新增setObject方法,允许直接为table对象设置和删除键值对,而不是通过返回值的方法进行调整。
  3. 新增LuaContext的脚本执行控制接口,可以通过LuaScriptController来强制中断脚本执行。
  4. iOS / OSX 平台下增加初始化上下文时传入配置接口,允许导出类方法名称时使用完整名称。
  5. 优化addSearchPath方法,可以加入lua文件以外的文件路径
  6. 优化Android和Unity3D下的抛出Lua异常操作
  7. 修复抛出异常时导致内存泄漏和程序死锁问题
  8. 修复iOS / OSX 平台下使用Swift的@objc导出类无法找到问题
  9. 修复Android平台下传递数组中包含导出类型对象时产生JNI栈溢出问题。
  10. 修复Android平台下,从原生层传入基础类型数组时无法转换到lua中使用问题。
  11. 修复Android平台下LuaValue无法识别传入byte[]类型问题。
  12. 修复Android平台下,对象方法传入floatintlong类型参数时无法识别问题。
  13. 修复Android平台下,对象方法返回值为float时无法识别问题。
  14. 修复Android平台下LuaTuple返回基础类型值不正确问题
  15. 修复Android平台下LuaTuple设置List类型为返回值时获取不到列表内容问题
  16. 修复Android平台下循环调用方法时导致崩溃问题
  17. 修复Android平台下创建类对象是内存泄漏问题
  18. 修复Unity3D下LuaValue转换为object时,如果数据为数组或者字典里面的元素没有解包问题。

LuaScriptCore模块项目正式成立

为了帮助广大开发者完成更多的开发需要,该项目会以功能模块的方式来实现更有针对性的功能需求,目前处于建设阶段,希望大家可以多提需求和建议,同时也希望大家能将自己做的模块共享出来,帮助项目更加完善和强大〜

具体请移步至:LuaScriptCoreModules

Assets 5
Loading

Release 2.3.2

13 Dec 03:48
@vimfung vimfung

Choose a tag to compare

更新内容:

1 优化对象构造接口,与原生层构造方法相绑定(之前版本只会调用默认构造方法)
2. 优化Swfit下的LuaValue类型构造方法。
3. 优化Unity3D下addSearch方法发布到Android平台后路径无法查询问题
4. 优化LuaValue转换为其他类型时的内部处理
5. 修复GC可能会导致主线程阻塞问题。
6. 修复Xcode 10下打包脚本报错问题。
7. 修复Windows下无法编译Unity项目问题。
8. 解决Android平台源码编译问题并由GCC编译调整为clang编译(感谢@zhaoxuan同学提供支持)
9. 修复Swift下LuaFunction、LuaTuple、LuaPointer在lua层回传后不再是同一对象问题。
10. 修复Unity3D下传递List和Dictionary类型出现异常问题
11. 修复Unity3D下传递自定义类型对象出现异常问题
12. 修复Unity3D下输出信息带%号是出现乱码问题
13. 增加Android平台和Unity3D下一些缺失的功能接口

LuaScriptCore模块项目正式成立

为了帮助广大开发者完成更多的开发需要,该项目会以功能模块的方式来实现更有针对性的功能需求,目前处于建设阶段,希望大家可以多提需求和建议,同时也希望大家能将自己做的模块共享出来,帮助项目更加完善和强大〜

具体请移步至:LuaScriptCoreModules

Loading

Release 2.3.0

08 Aug 03:54
@vimfung vimfung

Choose a tag to compare

更新内容:

  1. 增加线程安全机制
  2. lua核心升级至5.3.5版本
  3. 修复Android平台下使用ArrayList作为参数传入callMethod中无效问题。
  4. 允许Android、Unity平台下使用泛型作为参数传入lua。
  5. 修复Android平台下map中设置null元素转换失败问题
  6. Android和Unity平台下的LuaExportTypeConfigLuaExportTypeAnnotation标注过期(后续版本将移除),使用LuaExclude注解(特性)来代替:

Android平台

//调整前
@LuaExportTypeConfig(excludeExportInstanceMethodsNames = {"method1", "method2"})
class TargetClass implements LuaExportType
{
 public void method1 () {}
 public void method2 () {}
}
//调整后
class TargetClass implements LuaExportType
{
 @LuaExclude
 public void method1 () {}
 @LuaExclude
 public void method2 () {}
}

Unity平台

//调整前
[LuaExportTypeAnnotation(excludeExportInstanceMethodNames=new string[]{"method1", "method2"})]
class TargetClass : LuaExportType 
{
 public void method1 () {}
 public void method2 () {}
}
//调整后
class TargetClass : LuaExportType 
{
 [LuaExclude]
 public void method1 () {}
 [LuaExclude]
 public void method2 () {}
}
Loading

Release 2.2.1

25 May 03:25
@vimfung vimfung

Choose a tag to compare

  1. 修复访问属性时导致堆栈错乱引发的一些未知问题
  2. 修复框架中的内存泄漏问题
  3. 优化抛出异常接口raiseException
  4. 修复一些不必现的崩溃问题
  5. 优化执行效率
Loading

Release 2.2.0

04 May 06:27
@vimfung vimfung

Choose a tag to compare

更新内容:

  1. 废弃原有构造函数create,使用类型()方式构造对象;
  2. 统一使用冒号来进行类方法和实例方法的声明和调用(之前版本类方法用点语法,实例方法用冒号语法)。
  3. 优化类型加载逻辑,提升执行效率。
  4. Object类型新增typeMapping方法,用于为原生类型定义别名。
  5. LuaContext新增raiseException原生方法,用于抛出Lua执行异常。
  6. 修复iOS、OSX下Function类型传入原生层后释放时崩溃问题。
  7. 修复iOS、OSX下32位设备返回布尔类有误问题。
  8. 修复Windows下编译Android项目报错问题。

注:由于本次更新涉及语法变更,更新后需要调整变更的语法,请使用旧版本的同学谨慎升级

Loading

Release 2.1.1

28 Jan 03:44
@vimfung vimfung

Choose a tag to compare

本次更新内容包括:

1、修复iOS / OSX平台下调用方法导致内存泄漏问题。
2、修复Android平台下,类型方法的参数使用Object类型来声明参数时,强转报错问题。

Loading

Release 2.1.0

21 Jan 02:35
@vimfung vimfung

Choose a tag to compare

更新内容如下:

  1. LuaValue增加Class类型
  2. 完善异常捕获检测,让问题定位更加准确
  3. 修复继承Object对象的Lua类型操作异常问题。
  4. 优化查找属性和获取属性值业务逻辑
  5. 优化GC回收处理
  6. 异常捕获优化,修正原生方法执行异常后无lua异常报告问题。
  7. 增加TmpValue,用于解决Table类型原生转换后再回传lua产生的变化问题。
  8. 修复父类属性在子类重写后无法正常调用问题。
  9. 修复Unity下多个LuaContext相互影响问题。
  10. 修复对象创建时在init方法中调用self相关的属性和方法导致栈溢出问题。
  11. 修复Lua中直接调用subclass派生类型无法进行扩展类型属性定义问题。
Loading

Release 2.0.0

03 Dec 03:21
@vimfung vimfung

Choose a tag to compare

LuaScriptCore迎来一次重大更新!本次更新主要涉及对象映射部分功能,其中包括:

  • 导出类型更加自由,取消强制继承Module或者ObjectClass类型的导出机制,只要类型实现ExportType则可以在Lua脚本中进行使用。在原生代码定义如下:

iOS

@interface LuaType : NSObject <LSCExportType>
// 定义属性和方法...
@end

Android

class LuaType implements LuaExportType
{
// 定义属性和方法...
}

Unity3D

class LuaType : LuaExportType 
{
// 定义属性和方法...
}

则可以在Lua中进行使用,如:

local obj = LuaType.create();
print (obj);
  • 导出类型的属性访问更加简单易用,如果的原生类有一个name的属性定义如下:

iOS

@interface LuaType : NSObject <LSCExportType>
@property (nonatomic, copy) NSString *name;
@end

Android

class LuaType implements LuaExportType
{
 public String name;
}

Unity3D

class LuaType : LuaExportType 
{
 private string _name;
 public string name
 {
 get 
 {
 return _name;
 }
 set
 {
 _name = value;
 }
 }
}

以前的版本在Lua中的调用形式如下:

local obj = LuaType.create();
obj:setName("vim");
print (obj:name());

新版本中调用形式如下:

local obj = LuaType.create();
obj.name = "vim";
print (obj.name);
  • 现在可以支持类型方法的重载了!!假设你的原生类型方法有多个重载:

iOS

@interface LuaType : NSObject <LSCExportType>
- (void)test;
- (void)testWithMsg:(NSString *)msg;
@end

Android

class LuaType implements LuaExportType
{
 public void test () {};
 public void test(String msg) {};
}

Unity3D

class LuaType : LuaExportType 
{
 public void test () {};
 public void test (string msg) {};
}

在Lua中可以根据传参来调用到不同方法重载,如:

local obj = LuaType.create();
obj.test();
obj.test("Hello World");
  • 本次更新为了满足部分同学的需要,对Lua 5.1版本核心进行了支持(适用于iOS、OSX、Android平台),但是没有直接制作relase包,有需要的同学可以直接使用源码工程打包。具体打包步骤如下:

iOS

  1. 打开Source/iOS_OSX/LuaScriptCore_5_1.xcodeproj工程
  2. 选择LuaScriptCore-iOS-output或者LuaScriptCore-iOS-Swift-outputscheme编译输出iOS包
  3. Release/iOS或者Release/iOS-Swift中可找到导出包

OSX

  1. 打开Source/iOS_OSX/LuaScriptCore_5_1.xcodeproj工程
  2. 选择LuaScriptCore-OSX-output或者LuaScriptCore-OSX-Swift-outputshcme编译输出OSX包
  3. Release/OSX或者Release/OSX-Swift中可找到导出包

Android

  1. 使用Android Studio 打开Source/Android工程
  2. 打开build.gradle(Module:luascriptcore)文件,将apply from: './compile.gradle'改为apply from: './compile-5.1.5.fradle'
  3. 然后重新编译
  4. Source/Android/luascriptcore/build/intermediates/bundles/release/目录下找到导出包
  • 除了上述更新内容外,本次还优化了内部的一些处理逻辑和流程,同时修复了一些已的bug。具体内容包括:
  1. 优化iOS/OSX下addSearchPath接口逻辑处理
  2. 修复iOS/OSX平台在Xcode9下打包出错问题
  3. 修复Context销毁时出现崩溃的问题。
  4. 修复在Lua协程操作时访问异常问题。
Loading

Release 1.3.5

02 Aug 07:35
@vimfung vimfung

Choose a tag to compare

修复Lua协程中调用原生方法异常问题

Loading

Release 1.3.4

12 Jun 10:44
@vimfung vimfung

Choose a tag to compare

  1. LuaContext增加retainValuereleaseValue,允许原生层对Lua层对象进行内存上的管理。
  2. 新增LuaManagedValue类型,使用该类型可以延长Lua对象生命周期,使其在类型被释放之后进行。
  3. 改进框架,优化执行效率
Loading
Previous 1
Previous

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