3
나는 내 게임 엔진을위한 스크립팅 레이어로 작업 중이다. 현재 Script라는 클래스를 사용하여 new라는 "Table"메소드를 추가합니다. 이 함수는 기본적으로 클래스의 인스턴스화 된 복사본을 만들었습니다. 스크립트의 인스턴스가 필요할 때 C API에서이 함수를 호출합니다.루아 : 새로운 C API
function PlayerController:new(o)
print('A new instance of the PlayerController has been created');
o = o or {}
setmetatable(o, self)
self.__index = self
return o
end
내 질문은 : 나는 루아 코드 위를 가지고 가고, 내가이 시스템 쓰기 모든 스크립트 파일에 추가 할 필요는 없습니다 그래서 C로 그 이동할 수 있습니까?
나쁜 생각을. 왜 루아 스크립트 (다른 사람들을 호출 할 수도 있음)를 사용하여 루아 상태를 초기화하고 호스트가 제공하는 모든 함수를 적절한 루아 클래스에 넣을 수없는 이유는 무엇입니까? 그것은 작성하기가 훨씬 쉽고 유지 보수가 쉽고 확장하기 쉽습니다. 성능을 해치지 않아야합니다. – Deduplicator
또한 클래스 정의 및 인스턴스화를 위해 call 메타 메소드 사용을 고려하십시오. – Deduplicator
나는 잘 모르겠습니다. 또한 각 스크립트에 '새로운'메소드를 프로그래밍 방식으로 추가하는 것은 왜 나쁜 생각입니까? 그냥 궁금해서. 또한, 나는 메타 방법을 찾고있다. –