我在Unity3d中使用Moonsharp时遇到问题。我正在尝试传递“AppletMessage”对象:
[MoonSharpUserData]
public class AppletMessage {
public string Name;
public string[] Args;
public AppletMessage(string _name, string[] _args) {
Name = _name;
Args = _args;
}
}
进入lua中的功能,我不确定该怎么做。
我目前正在做的是这样的:
//In a start function
UserData.RegisterType<AppletMessage>();
//Later on, after popping the latest message from a stack as 'LatestMessage'
result = applet.Call( applet.Globals["OnCatchMessage"],new AppletMessage[] {LatestMessage});
这是给我这个来自applet类的错误,当它尝试调用该函数并在其中传递AppletMessage时:
cannot access field of userdata<AppletMessage>
最佳答案
您在游戏开始时是否添加了Moonsharp.Interpreter.UserData.RegisterAssembly();
?您需要使用它来检测并使[MoonSharpUserData]
标记正常工作。
关于c# - 使用Moonsharp将C#对象传递给lua函数。,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/42550826/