Skip to content

Latest commit

 

History

History
32 lines (21 loc) · 1.61 KB

File metadata and controls

32 lines (21 loc) · 1.61 KB

개발 환경

런타임 선택 근거

Sephiria_Data\Managed와 관리형 Assembly-CSharp.dll, Mono 런타임이 존재하고 IL2CPP 산출물이 없으므로 Unity Mono 빌드로 취급합니다. Unity 6000.3.21f1netstandard.dll 버전이 2.1.0.0이므로 플러그인은 netstandard2.1을 대상으로 합니다.

BepInEx 준비

  1. BepInEx 6의 Windows Unity Mono x64 빌드를 준비합니다.
  2. 압축 내용을 Sephiria.exe가 있는 게임 루트에 풉니다.
  3. 게임을 한 번 실행합니다.
  4. BepInEx\configBepInEx\LogOutput.txt가 생성되었는지 확인합니다.

BepInEx 런타임 자체는 이 저장소에 포함하지 않습니다.

게임 어셈블리 참조

Directory.Build.local.props.example을 복사하여 개인별 게임 경로를 지정합니다. 프로젝트는 다음 파일만 선택적으로 참조합니다.

Sephiria_Data\Managed\Assembly-CSharp.dll

mscorlib.dll, netstandard.dll, System.*.dll 등 게임에 포함된 프레임워크 어셈블리는 참조하지 않습니다. 컴파일 기준 API는 NuGet 패키지와 .NET 타깃 프레임워크에서 가져옵니다.

개발 원칙

  • 먼저 프로파일링하여 퀵 태블릿의 병목을 재현하고 기준 수치를 기록합니다.
  • Harmony 패치는 가능한 한 좁은 메서드와 조건에 적용합니다.
  • 설정으로 각 최적화를 독립적으로 비활성화할 수 있게 설계합니다.
  • 게임 업데이트 후 메서드 시그니처와 패치 적용 로그를 다시 검증합니다.
  • 원본 게임 DLL이나 역컴파일 결과물을 커밋하지 않습니다.