다음에 명명 된 테이블에 Lua 스크립트를로드합니다. 내 게임에서 luaL_loadfile
과 lua_pcall
을 사용하여 스크립트를로드하고, 전역 테이블에로드하는 대신 파일 이름을 가진 테이블에로드 할 수 있는지 궁금합니다.파일 이름
Foo.DoSomething()
: 나는 그것을 좋아에 액세스 할 수 있도록하려면를로드 한 후
function DoSomething()
--something
end
: 나는이 포함 "Foo.lua", 호출 된 파일이
: 예를 들어
감사!
이 후에 환경을 설정해야합니까? 왜냐하면 내가이 함수를 호출 할 때 나는 다음과 같은 결과를 얻었 기 때문이다 : "글로벌 'print'(nil 값) 호출 시도" –
아, 맞다. 내가 제공 한 코드는 해당 스크립트의 전역 변수를 빈 테이블로 바꾸고 인쇄하지 않습니다. 두 가지 해결책을 보았습니다. __index 메타 메소드를 _G를 가리키는 해당 테이블에 추가하거나 lua_pcall 전에 _G에 __newindex 메소드를 추가하여 스크립트의 모든 정의가 테이블로 이동하도록하십시오. 먼저 Lua를 사용하여 프로토 타입을 작성한 다음 C로 이동하십시오. – lhf
자세한 설명 (Lua로 작성)은 [lua-users 메일 링리스트] (http://lua-users.org/lists/lua)에서 찾을 수 있습니다. -l/2006-05/msg00121.html) – akciom