버그 해결을 위한 모든 질문을 던져
0 votes
103 views
리플레이 시스템 때문에 이 기능이 필요합니다.

예를들어 gameEngine.dll v0.0.1에서는 점프키를 눌렀을때 그냥 점프만을 하고 ,gameEngine.dll v0.0.2에서는 점프키를 눌렀을때 덤블링을 한다고 가정을 해봅니다.

v0.0.1 게임에 해당되는 리플레이 파일과 v0.0.2게임에 해당되는 리플레이 파일이 존재하였을때 참조dll이 gameEngine.dll v0.0.2로 되어있으면 2개의 리플레이 파일을 재상할떄 모두 덤블링을 하게 될것입니다.

저는 리플레이 파일 버젼에 맞게 다른dll을 참조하여 실행을 시켜주고 싶습니다.
asked (18 point) , 103 views

1 답변

0 votes
시도해보지는 않았지만 아이디어가 있습니다.

빌드시 함께 포함되는 UnityPlayer.dll을 hex로 열어보시면 GameAssembly.dll라는 string을 확인하실 수 있습니다. 그렇다면 GameAssembly.dll 라는 이름으로 래핑용 DLL을 생성하고, EP에서 버전을 선택한 다른 GameAssembly.dll을 로드하도록 해 줄 수 있을것입니다.

그러면 미리 GameAssembly.dll 이 버전이 여러개 준비되어야겠지요. 그런데 이 GameAssembly.dll은 il2cppdata 내 global-metadata.dat와 세트로 움직여야합니다. 래핑용 DLL에서는 GameAssembly.dll와 global-metadata.dat도 함께 관리해주어야 하고, global-metadata.dat가 어디에 위치하는지는 GameAssembly.dll 안에서 결정하기 때문에 Create visual studio project 기능으로 cpp 코드에서 수정해 빌드해주어야 될 겁니다.

그러나 이런 방법보다 리플레이 저장방식을 개선해야하지 않을까싶네요. 키바인딩 방식의 리플레이 기억이아닌 커맨드 방식으로 라던가...
answered (134 point)

버그 해결을 위해 도움을 구하고, 도움을 주세요. 우리는 그렇게 발전합니다.

throw bug 는 프로그래밍에 대한 전분야를 다룹니다. 질문,논의거리,팁,정보공유 모든 것이 가능합니다. 프로그래밍과 관련이 없는 내용은 환영받지 못합니다.

476 질문
631 answers
610 댓글
82,561 users