一、访问boolean、number、string 类型的全局变量
1.在“Resources”目录下,新建一个名字为 “CSharpCallLua.lua.txt” 的lua脚本
2.在 “CSharpCallLua.lua.txt” 脚本中定义我们需要访问的数据类型(代码如下)
--测试C#访问lua脚本中的 boolean、number、string 类型的全局变量
isFistrTime=true --测试访问 boolean 类型的全局变量
number1=10 --测试访问 number 类型的全局变量
str="我是lua中的全局变量" --测试访问 string 类型的全局变量
number2=88.8 --测试访问 number 类型的全局变量
local number3 = 88 --测试访问是否可以访问局部变量?
3.新建一个名为“”的C#脚本(代码如下)
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using XLua;
/// <summary>测试C#调用lua中的全局变量</summary>
public class TestCSharpCallLua : MonoBehaviour
{
private LuaEnv m_LuaEnv;
private void Start()
{
m_LuaEnv = new LuaEnv();
m_LuaEnv.DoString("require 'CSharpCallLua'"); //调用完才能取得里面的变量
bool isFistrTime = m_LuaEnv.Global.Get<bool>("isFistrTime"); //获取lua里面的全局变量isFistrTime
print("isFistrTime:"+isFistrTime);
int number1 = m_LuaEnv.Global.Get<int>("number1"); //获取lua里面的全局变量number1
print("number1:"+number1);
string str = m_LuaEnv.Global.Get<string>("str"); //获取lua里面的全局变量str
print("str:"+str);
float number2 = m_LuaEnv.Global.Get<float>("number2"); //获取lua里面的全局变量number2
print("number2:"+number2);
float number3 = m_LuaEnv.Global.Get<int>("number3"); //获取lua里面的局部变量number3(测试是否能访问局部变量)
print("number3:"+number3);
}
private void OnDestroy()
{
m_LuaEnv.Dispose();
}
}
3.运行结果如下