gpt4 book ai didi

c# - LuaInterface C# 元表

转载 作者:太空宇宙 更新时间:2023-11-03 17:02:41 31 4
gpt4 key购买 nike

我有一些后台 lua 代码,我在每次启动时加载它们,它们工作正常,但有什么方法可以将它们转换为 C# 吗?

这是我的元表代码:

player = {}
player.__index = player

function player:Add(name)
return setmetatable({name = name}, player)
end

function player:Nick()
return self.name
end

它工作正常,这是我的代码目前的工作方式:

print(ply:Nick())

目前,我在注册 lua 函数代码时使用 void 搜索 Player.cs 对象,我的 C# 代码上没有任何特殊的 void 或函数,上面有 Player 对象,但我想更改所有这些对象对于 Player 对象,还有什么方法可以在不注册的情况下使用 Player.cs voids/strings 或 lua 中的任何内容? Player.cs 对象是非静态的。

最佳答案

我发现 KopiLua 和 LuaInterface (Latest) 有元表,你必须返回的只是你的对象,你不能返回类或以任何方式将它们添加到 LuaInterface,但你可以返回可以做同样事情的对象或函数。从lua,人们可以使用对象函数。具有参数(甚至为空)的函数与 : 一起使用,而其他函数与点一起使用。这是示例:

// C#:
public List<string> testing()
{
return new List<string>()
{
{"Test"},
{"Another test"}
};
}

// Player object:
public int Health { get { return 1; } }
public int Hp() { return this.Health; }

// lua:
testing:Clear()
print(ply.Health)
print(ply:Hp())
ply.Health = 2
// You can not change a function style value like Hp(), So no way to change health this way except making a set function

关于c# - LuaInterface C# 元表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18692931/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com