C# NLua:访问泛型参数
C# NLua: Accessing generic parameters
我有一个使用通用参数的实体组件系统。我正在尝试使用 NLua 使 Lua 脚本工作。
但是我不知道如何从 Lua 环境访问通用参数。
是这样的吗?:
if e:HasComponent<Position>() then
print("Found position...")
end
如果没有办法做到这一点,那么我将如何通过字符串访问组件?
代码片段将根据要求提供,因为我认为这不是我的代码的问题。
可以尝试直接调用Generic方法,不带类型参数,NLua会尝试匹配方法名
if e:HasComponent () then
...
end
如果失败,您还可以尝试将泛型方法包装到非泛型扩展方法中。
public static HasPositionComponent (this TypeE e)
{
return e.HasComponent<Position>();
}
然后您可以从 Lua
作为常规方法调用 HasPositionComponent
if e:HasPositionComponent () then
...
end
看看 GenericMethod 测试:
https://github.com/NLua/NLua/blob/main/tests/src/LuaTests.cs#L442
我有一个使用通用参数的实体组件系统。我正在尝试使用 NLua 使 Lua 脚本工作。
但是我不知道如何从 Lua 环境访问通用参数。
是这样的吗?:
if e:HasComponent<Position>() then
print("Found position...")
end
如果没有办法做到这一点,那么我将如何通过字符串访问组件?
代码片段将根据要求提供,因为我认为这不是我的代码的问题。
可以尝试直接调用Generic方法,不带类型参数,NLua会尝试匹配方法名
if e:HasComponent () then
...
end
如果失败,您还可以尝试将泛型方法包装到非泛型扩展方法中。
public static HasPositionComponent (this TypeE e)
{
return e.HasComponent<Position>();
}
然后您可以从 Lua
作为常规方法调用 HasPositionComponentif e:HasPositionComponent () then
...
end
看看 GenericMethod 测试:
https://github.com/NLua/NLua/blob/main/tests/src/LuaTests.cs#L442