Lua에서 C 코드 호출

프로젝트의 Lua 스크립트가 C 코드를 실행하도록 할 수 있습니다. C로 쓰여진 함수는 대개 Lua로 쓰여진 해당 함수보다 빠르게 실행되기 때문에 이는 성능이 핵심인 경우에 유용합니다. 또한, 이 방식을 통해 타사 라이브러리를 통합하거나 다른 응용프로그램용으로 쓰인 기존 C 코드를 재사용할 수도 있습니다.

이 작업을 수행할 수 있는 옵션이 몇 가지 있습니다.

모든 경우 C 코드를 동적으로 링크된 라이브러리로 컴파일하고, 해당 라이브러리를 엔진에서 런타임 시 로드할 수 있도록 해야 합니다.

참고: 이 섹션의 자료는 C 코드 쓰기 및 컴파일을 이미 경험해 본 프로그래머들에게 권장되는 자료입니다. FFI 라이브러리 사용에 따른 바인딩 레이어 관리 또는 유형 변환의 복잡함을 고려하지 않더라도 C는 초급자가 직접 사용하기에는 어려울 수 있습니다.

플랫폼 지원

게임이 동적 링크를 지원하고, LuaJIT에 동적으로 링크되는 플랫폼을 대상으로 한다면 동적으로 링크된 라이브러리에서만 C 코드를 실행할 수 있습니다.

다른 옵션: 엔진 플러그인 쓰기

C 코드를 동적 링크를 지원하지 않는 플랫폼에서 실행해야 하거나 이 섹션의 항목에서 설명한 어느 한 방법으로도 Lua에서 작동하는 코드를 가져올 수 없는 경우 Stingray 엔진에 의해 노출되는 플러그인 API를 사용하는 것도 한 가지 방법입니다.

현재 이렇게 하려면 Stingray 소스 리포지토리에 액세스할 수 있어야 합니다. 자세한 내용은 Autodesk 담당자에게 문의하십시오. Stingray 개발자 도움말도 참조하십시오.