6.CSharp调用Lua-变量的获取和赋值
6.1 知识点
准备工作
初始化Lua管理器,创建Lua脚本并在C#脚本调用
LuaManager.Instance.Init();
LuaManager.Instance.Require("Lesson06_CSharp调用Lua_变量的获取和赋值");
print('我是Lua脚本 Lesson06_CSharp调用Lua_变量的获取和赋值')
在Lua脚本中设置全局和局部变量
--设置一些全局变量
testNumber = 6
testBool = true
testFloat = 6.66
testString = "666666"
--局部变量不可获取和赋值
local testLocal = 10
全局变量的获取与赋值
中括号获取全局变量
//直接中括号访问
Debug.Log(LuaManager.Instance.LuaState["testNumber"]);//6
Debug.Log(LuaManager.Instance.LuaState["testBool"]);//True
Debug.Log(LuaManager.Instance.LuaState["testFloat"]);//6.66
Debug.Log(LuaManager.Instance.LuaState["testString"]);//666666
中括号赋值全局变量
//赋值到C#后修改 不起作用
int testNumber = Convert.ToInt32(LuaManager.Instance.LuaState["testNumber"]);
Debug.Log(testNumber);//6
testNumber = 666;
Debug.Log(LuaManager.Instance.LuaState["testNumber"]);//6
//直接修改可以成功
LuaManager.Instance.LuaState["testNumber"] = 666;
Debug.Log(LuaManager.Instance.LuaState["testNumber"]);//666
//可以在C#添加Lua的全局变量
Debug.Log(LuaManager.Instance.LuaState["addValue"]);//NUll
LuaManager.Instance.LuaState["addValue"] = "123";
Debug.Log(LuaManager.Instance.LuaState["addValue"]);//123
局部变量不可获取和赋值
Debug.Log(LuaManager.Instance.LuaState["testLocal"]);//NUll
6.2 知识点代码
Lesson06_CSharp调用Lua_变量的获取和赋值.lua
print('我是Lua脚本 Lesson06_CSharp调用Lua_变量的获取和赋值')
--设置一些变量
testNumber = 6
testBool = true
testFloat = 6.66
testString = "666666"
--局部变量不可获取和赋值
local testLocal = 10
Lesson06_CSharp调用Lua_变量的获取和赋值
using System;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Lesson06_CSharp调用Lua_变量的获取和赋值 : MonoBehaviour
{
void Start()
{
LuaManager.Instance.Init();
LuaManager.Instance.Require("Lesson06_CSharp调用Lua_变量的获取和赋值");
#region 知识点一 全局变量的获取
//直接中括号访问
Debug.Log(LuaManager.Instance.LuaState["testNumber"]);//6
Debug.Log(LuaManager.Instance.LuaState["testBool"]);//True
Debug.Log(LuaManager.Instance.LuaState["testFloat"]);//6.66
Debug.Log(LuaManager.Instance.LuaState["testString"]);//666666
#endregion
#region 知识点二 全局变量的赋值
//赋值到C#后修改 不起作用
int testNumber = Convert.ToInt32(LuaManager.Instance.LuaState["testNumber"]);
Debug.Log(testNumber);//6
testNumber = 666;
Debug.Log(LuaManager.Instance.LuaState["testNumber"]);//6
//直接修改可以成功
LuaManager.Instance.LuaState["testNumber"] = 666;
Debug.Log(LuaManager.Instance.LuaState["testNumber"]);//666
//可以在C#添加Lua的全局变量
Debug.Log(LuaManager.Instance.LuaState["addValue"]);//NUll
LuaManager.Instance.LuaState["addValue"] = "123";
Debug.Log(LuaManager.Instance.LuaState["addValue"]);//123
#endregion
#region 知识点三 局部变量不可获取和赋值
Debug.Log(LuaManager.Instance.LuaState["testLocal"]);//NUll
#endregion
}
}
转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 785293209@qq.com