XLua学习笔记_C#访问Lua的全局变量

一、访问boolean、number、string 类型的全局变量

1.在“Resources”目录下,新建一个名字为 “CSharpCallLua.lua.txt” 的lua脚本

XLua学习笔记_C#访问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.运行结果如下

XLua学习笔记_C#访问Lua的全局变量

上一篇:Unity热更新06-XLua热补丁-03 - 协程函数替换


下一篇:Unity热更新06-XLua热补丁-04 - 属性和索引器替换