6.CSharp调用Lua-变量的获取和赋值
6.1 知识点
准备工作
初始化Lua管理器并执行Lua脚本
// 初始化Lua管理器
LuaManager.Instance.Init();
// 执行Lua脚本
LuaManager.Instance.DoLuaFile("Lesson06_CSharp调用Lua_变量的获取和赋值");
print('我是Lua脚本 Lesson06_CSharp调用Lua_变量的获取和赋值')
在Lua脚本中设置全局和局部变量
--设置一些变量
testNumber = 6
testBool = true
testFloat = 6.66
testString = "666666"
--局部变量不可获取和赋值
local testLocal = 10
全局变量的获取与赋值
Global.Get<T> 获取全局变量
// 使用Lua管理器中的全局属性的 Get 泛型方法 传入变量的类型和变量名 得到Lua变量
int testNumber = LuaManager.Instance.Global.Get<int>("testNumber");
Debug.Log("testNumber:" + testNumber); // 6
bool testBool = LuaManager.Instance.Global.Get<bool>("testBool");
Debug.Log("testBool:" + testBool); // True
float testFloat = LuaManager.Instance.Global.Get<float>("testFloat");
Debug.Log("testFloat:" + testFloat); // 6.66
double testDouble = LuaManager.Instance.Global.Get<double>("testFloat");
Debug.Log("testFloat_double:" + testDouble); // 6.66
string testString = LuaManager.Instance.Global.Get<string>("testString");
Debug.Log("testString:" + testString); // 666666
Global.Set 赋值全局变量
// 使用Lua管理器中的全局属性的 Set 方法 传入变量名和要设置的值 赋值Lua变量
testNumber = 666;
LuaManager.Instance.Global.Set("testNumber", testNumber);
int testNumber_new = LuaManager.Instance.Global.Get<int>("testNumber");
Debug.Log("testNumber_new:" + testNumber_new); // 666
局部变量不可获取和赋值
// 尝试获取局部变量
// int local = LuaManager.Instance.Global.Get<int>("testLocal");
// 报错 InvalidCastException: can not assign nil to int
// Debug.Log("testLocal:" + local);
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.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Lesson06_CSharp调用Lua_变量的获取和赋值 : MonoBehaviour
{
void Start()
{
LuaManager.Instance.Init();
LuaManager.Instance.DoLuaFile("Lesson06_CSharp调用Lua_变量的获取和赋值");
#region 知识点一 全局变量的获取
//使用Lua管理器中的全局属性的 Get泛型方法 传入变量的类型和变量名 得到Lua变量
int testNumber = LuaManager.Instance.Global.Get<int>("testNumber");
Debug.Log("testNumber:" + testNumber);//6
bool testBool = LuaManager.Instance.Global.Get<bool>("testBool");
Debug.Log("testBool:" + testBool);//True
float testFloat = LuaManager.Instance.Global.Get<float>("testFloat");
Debug.Log("testFloat:" + testFloat);//6.66
double testDouble = LuaManager.Instance.Global.Get<double>("testFloat");
Debug.Log("testFloat_double:" + testDouble);//6.66
string testString = LuaManager.Instance.Global.Get<string>("testString");
Debug.Log("testString:" + testString);//666666
#endregion
#region 知识点二 全局变量的赋值
//使用Lua管理器中的全局属性的 Set方法 传入变量名和要设置的值 赋值Lua变量
testNumber = 666;
LuaManager.Instance.Global.Set("testNumber", testNumber);
int testNumber_new = LuaManager.Instance.Global.Get<int>("testNumber");//重新得到 看看Lua变量是否改值了
Debug.Log("testNumber_new:" + testNumber_new);//666
#endregion
#region 知识点三 局部变量不可获取和赋值
//int local = LuaManager.Instance.Global.Get<int>("testLocal");//报错 InvalidCastException: can not assign nil to int
//Debug.Log("testLocal:" + local);
#endregion
}
}
转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 785293209@qq.com