조언의 첫 번째 부분은 LUAInterface를 사용하지 않는 것입니다. 그것은 크로스 플랫폼이 아니기 때문에, IronPython을 대신 사용할 수 있습니다. IronPython은 LUA로 픽업하기 쉽고 게임 작성 방법에 따라 Windows 및 OSX에서 실행됩니다. XNA와 OpenTK는 그래픽 엔진의 모노에서 크로스 플랫폼을 사용해야합니다.
나는 내 자신의 vb.net 기반 게임에 대해 LUA와 함께 experementing 때 자신을 발견하고 결국 철 python에 결정했다.
하지만 LUA를 고수하겠다고 가정하면; 여기 당신이 시도 할 수있는 무언가가 있습니다. 기록 된 모든 vb.net 코드가 실행 시간 후에는 변경할 수 없습니다 , 당신은 같은 것을 할 수 있습니다 : 루아에서 다음
Public Shared Lua as New LuaInterface
Sub Game()
Dim LuaCaller as New LuaAccess
Lua("LuaAccess") = LuaCaller
End Sub
Public Class LuaAccess
Public Sub Grant(NewClass as String, Variable as String)
Select Case NewClass
Case "LuaAccess"
Lua(Variable) = New LuaAccess
End Sub
End Class
:
LuaAccess:Grant("LuaAccess", "MyNewLuaAccess")
당신이 알고있는 사실을 바탕으로
인스턴스를 생성 할 수 있도록 각 클래스에 새 사례를 추가 할 수 있습니다. 그것을 사용하여 클래스의 새 인스턴스를 만듭니다. 당신은 그런 식으로 변수의 복사본 하나가 바로 잠수함 또는 변수를 만들거나 수업 시간에 모두
Public Shared MyVar as Integer
공유, 메인 프로그램에서 사용되는 활성 클래스를 수정 할 수 있도록하려면 , 응용 프로그램의 어떤 부분 (루아조차도)이 수정할 수 있습니다.
IronPython은 실제로 LuaInterface와 달리이 종류의 것에 더 적합하며 여전히 적극적으로 개발되고 있습니다.
한 가지를 기억하십시오. 스크립팅에 관해서는 스크립트 엔진을 너무 많이 제어하고 싶지 않습니다. 특히 게임에 있어서는 엔진이 할 수있는 모든 것에 액세스 할 수 있습니다. 그리고 당신이 조심하지 않으면 속일 수 있습니다.
행운을 빈다, 나는 내가 도왔기를 바랍니다. LuaInterface 런타임 2.0.50727 (Lua51.dll를 사용하는 것)
당신이 문서를 읽고 바탕으로
? www.lua.inf.puc-rio.br/luanet/luainterface/luainterface.pdf. 'userdata' 루아 타입에 대해 읽어보십시오. –