-
Notifications
You must be signed in to change notification settings - Fork 115
API文档_Unity3D_CS_LuaValue
所有原生层与lua层的数据交互主要由该类型来封装和传递(对于导出类型也一样,只是在方法参数传入和返回时由LuaContext
自动封装,不需要开发者介入)。其统一了交互中传输的数据类型,帮助开发者快速理解并对其进行使用。
cn.vimfung.luascriptcore
LuaValue
> LuaBaseObject
创建包含null
的LuaValue
对象。在给lua传递一个nil
值时,可以通过该方法创建对象并传给lua层。
LuaValue ();
包含null
的LuaValue
对象实例
下例演示在注册方法中返回nil
到lua层
context.registerMethod ("testMethod", (arguments) => {
return new LuaValue();
});
创建包含某种类型数据(包含整型、浮点型、布尔型、字符串、二进制数组、数组、字典、LuaPointer
、LuaFunction
、LuaTuple
等)的LuaValue
对象。其中lua中整型会以number
表示,同时也没有对应的二进制数据类型,会转换成string
类型存储。
LuaValue (int value);
LuaValue (double value);
LuaValue (bool value);
LuaValue (string value);
LuaValue (List<LuaValue> value);
LuaValue (Dictionary<string, LuaValue> value);
LuaValue (byte[] value);
LuaValue (LuaFunction value);
LuaValue (LuaPointer value);
LuaValue (LuaTuple value);
LuaValue (object value);
- value: 任意数据类型
新创建的LuaValue
对象实例
表示包含值的类型,为枚举类型,取值如下:
名称 | 说明 |
---|---|
LuaValueType.Nil |
空值,nil
|
LuaValueType.Number |
数值类型 |
LuaValueType.Boolean |
布尔类型 |
LuaValueType.String |
字符串类型 |
LuaValueType.Array |
数组类型 |
LuaValueType.Map |
字典类型 |
LuaValueType.Ptr |
指针类型 |
LuaValueType.Object |
对象类型 |
LuaValueType.Integer |
整型 |
LuaValueType.Data |
二进制数据类型 |
LuaValueType.Function |
方法类型 |
LuaValueType.Tuple |
元组类型 |
只读
LuaValueType
将包含的值转换为整型值并返回,有以下几种情况:
- 为数值类型,直接转换
- 为字符串类型,当只包含数字内容,则直接转换,否则为0
- 为对象或指针类型,返回对象或指针的地址值。
int toInteger();
转换后的整型值
将包含的值转换为浮点数并返回,有以下几种情况:
- 为数值类型,直接转换
- 为字符串类型,当只包含数字内容,则直接转换,否则为0
- 为对象或指针类型,返回对象或指针的地址值。
double toNumber();
转换后的浮点数
将包含的值转换为布尔值并返回,有以下几种情况:
- 为数值类型时,当数值为0则转换为
false
,否则为true
- 为字符串类型时,当字符串内容为不为零的数值字符串,"YES","true"时为
true
,其他的为false
- 非上述两种类型时,如果值不为
null
则为true
,否则为false
bool toBoolean();
转换后的布尔值
将包含的值转换为字符串并返回。有以下几种情况:
- 为数值类型,直接转换为对应数字的字符串
- 为字符串类型,直接返回
- 为指针类型,返回指针的地址字符串
- 为对象类型,返回对象描述信息
string toString();
转换后的字符串
将包含的值转换为二进制数据并返回。有以下几种情况:
- 为二进制数据类型,直接返回
- 为字符串类型,转换为UTF8编码的二进制数据
- 非上述类型,返回
null
byte[] toData();
转换后的二进制数据。
返回包含的数组对象。如果非数组类型LuaValue
对象,则返回null
。
List<LuaValue> toArray();
数组对象
返回包含的哈希表对象。如果非哈希表类型LuaValue
对象,则返回null
。
Dictionary<string, LuaValue> toMap()
返回字典对象
将包含的值转换为指针并返回。如果是指针类型LuaValue
对象则直接返回,否则返回值的指针地址并封装为LuaPointer
返回。
LuaPointer toPointer();
转换后的指针对象。
返回包含的lua方法,如果非lua方法类型的LuaValue
对象,则返回null
。
LuaFunction toFunction();
lua方法对象
返回包含的元组,如果非元组类型的LuaValue
对象,则返回null
。
LuaTuple toTuple();
元组
将包含的值转换为对象并返回。这种方式可以获取LuaValue
所包含的值,在不关心值类型的情况下可以使用。
object toObject();
转换后的对象