Skip to content

API文档_Unity3D_CS_LuaValue

vimfung edited this page Nov 19, 2018 · 1 revision

API文档 > 类目录 > LuaValue

LuaValue

Summary

所有原生层与lua层的数据交互主要由该类型来封装和传递(对于导出类型也一样,只是在方法参数传入和返回时由LuaContext自动封装,不需要开发者介入)。其统一了交互中传输的数据类型,帮助开发者快速理解并对其进行使用。

cn.vimfung.luascriptcore

继承

LuaValue > LuaBaseObject

Constructor

LuaValue()

创建包含nullLuaValue对象。在给lua传递一个nil值时,可以通过该方法创建对象并传给lua层。

声明
LuaValue ();
返回值

包含nullLuaValue对象实例

示例

下例演示在注册方法中返回nil到lua层

context.registerMethod ("testMethod", (arguments) => {

    return new LuaValue();
		
});

LuaValue (value)

创建包含某种类型数据(包含整型、浮点型、布尔型、字符串、二进制数组、数组、字典、LuaPointerLuaFunctionLuaTuple等)的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对象实例

Properties

type

表示包含值的类型,为枚举类型,取值如下:

名称 说明
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

Instance Methods

toInteger

将包含的值转换为整型值并返回,有以下几种情况:

  1. 为数值类型,直接转换
  2. 为字符串类型,当只包含数字内容,则直接转换,否则为0
  3. 为对象或指针类型,返回对象或指针的地址值。
声明
int toInteger();
返回值

转换后的整型值


toNumber

将包含的值转换为浮点数并返回,有以下几种情况:

  1. 为数值类型,直接转换
  2. 为字符串类型,当只包含数字内容,则直接转换,否则为0
  3. 为对象或指针类型,返回对象或指针的地址值。
声明
double toNumber();
返回值

转换后的浮点数


toBoolean

将包含的值转换为布尔值并返回,有以下几种情况:

  1. 为数值类型时,当数值为0则转换为false,否则为true
  2. 为字符串类型时,当字符串内容为不为零的数值字符串,"YES","true"时为true,其他的为false
  3. 非上述两种类型时,如果值不为null则为true,否则为false
声明
bool toBoolean();
返回值

转换后的布尔值


toString

将包含的值转换为字符串并返回。有以下几种情况:

  1. 为数值类型,直接转换为对应数字的字符串
  2. 为字符串类型,直接返回
  3. 为指针类型,返回指针的地址字符串
  4. 为对象类型,返回对象描述信息
声明
string toString();
返回值

转换后的字符串


toData

将包含的值转换为二进制数据并返回。有以下几种情况:

  1. 为二进制数据类型,直接返回
  2. 为字符串类型,转换为UTF8编码的二进制数据
  3. 非上述类型,返回null
声明
byte[] toData();
返回值

转换后的二进制数据。


toArray

返回包含的数组对象。如果非数组类型LuaValue对象,则返回null

声明
List<LuaValue> toArray();
返回值

数组对象


toMap

返回包含的哈希表对象。如果非哈希表类型LuaValue对象,则返回null

声明
Dictionary<string, LuaValue> toMap()
返回值

返回字典对象


toPointer

将包含的值转换为指针并返回。如果是指针类型LuaValue对象则直接返回,否则返回值的指针地址并封装为LuaPointer返回。

声明
LuaPointer toPointer();
返回值

转换后的指针对象。


toFunction

返回包含的lua方法,如果非lua方法类型的LuaValue对象,则返回null

声明
LuaFunction toFunction();
返回值

lua方法对象


toTuple

返回包含的元组,如果非元组类型的LuaValue对象,则返回null

声明
LuaTuple toTuple();
返回值

元组


toObject

将包含的值转换为对象并返回。这种方式可以获取LuaValue所包含的值,在不关心值类型的情况下可以使用。

声明
object toObject();
返回

转换后的对象

Clone this wiki locally