Lua中的类型:nil,number,bool,string,table,function
其中基本类型有nil,number,bool,string
Lua的number对应C#的int,float,double等等
Lua的string对应C#的string
Lua的bool对应C#的bool

 

首先在Lua脚本中定义几个基本类型的变量
xLua(四)——C#访问Lua的基本类型_C#
注意要先用require加载Lua文件到Lua虚拟机后才可以使用Get方法得到Lua文件中的值

using UnityEngine;
using XLua;

public class CsCallLua : MonoBehaviour
{
    private void Start()
    {
        LuaEnv luaenv = new LuaEnv();

        luaenv.DoString("require '1'");
        print(luaenv.Global.Get<int>("hp"));        //100
        print(luaenv.Global.Get<bool>("isDie"));    //True
        print(luaenv.Global.Get<string>("name"));   //liu

        luaenv.Dispose();
    }
}

C#访问Lua文件中的number类型时,会进行自动的类型转换(低类型可以自动转高类型,也就是可以给高类型的值赋予一个低类型的值)因为Lua中的数字类型统一为number,而C#有int,double,float等类型,例如用C#中的int类型去访问Lua文件中定义的一个本质为float类型的变量,则输出为0
首先在Lua脚本中定义几个number类型的变量
xLua(四)——C#访问Lua的基本类型_C#_02
在CS中
xLua(四)——C#访问Lua的基本类型_热更新_03