널리 사용되는 오픈 소스 Unity 네트워킹 솔루션 Mirror 및 Mirage를 기반으로 하는 Godot용 고급 C# 네트워킹
예시 프로젝트의 비디오 데모: https://youtu.be/Ty55PZWtsJI
Mirage의 통합 버전에 대한 설명서는 https://miragenet.github.io/Mirage/에서 찾을 수 있습니다. 대부분의 동일한 개념이 Godot 버전에 적용됩니다.
git clone [email protected]:James-Frowen/Mirage.Godot.git
src/Mirage.Godot/Scripts
godot 프로젝트에 복사하세요..csproj
에 다음 항목에 대한 참조를 추가하세요.Mirage.Logging.csproj
Mirage.SocketLayer.csproj
dotnet build Mirage.CodeGen.csproj -c Release
[-o|--output <OUTPUT_DIRECTORY>]
를 사용하세요.< Project Sdk = " Godot.NET.Sdk/4.1.1 " >
...
< Target Name = " PostBuild " AfterTargets = " PostBuildEvent " >
< Exec Command = " path/to/Mirage.CodeGen.exe $(TargetPath) -force " />
< Error Condition = " $(ExitCode) == 1 " />
</ Target >
< Target Name = " PrePublish " BeforeTargets = " Publish " >
< Exec Command = " path/to/Mirage.CodeGen.exe $(PublishDir)$(TargetFileName) $(TargetDir) -force " />
< Error Condition = " $(ExitCode) == 1 " />
</ Target >
</ Project >
Mirage.CodeGen.csproj
현재 Mirage.Godot.csproj
에 대한 참조를 사용하여 Mirage 유형을 찾지만 실행 시 대상 csproj 내부의 유형을 사용합니다.
위 단계를 실행하는 명령( path/to/project
프로젝트로 대체)
git clone [email protected]:James-Frowen/Mirage.Godot.git
cd Mirage.Godot
cp src/Mirage.Godot/Scripts " path/to/project/Mirage.Godot "
dotnet build src/Mirage.Core/Mirage.CodeGen/Mirage.CodeGen.csproj -o ./CodeGen
그런 다음 CodeGen/CodeGen.exe
경로를 사용하여 PostBuild
대상을 수동으로 추가합니다.
참고: 빌드할 때 src/Mirage.Godot/Scripts/Example1
폴더를 제외할 수 있습니다. 그렇지 않으면 Mirage.Godot dll이 됩니다.
Mirage.Godot는 Mono.Cecil을 사용하여 컴파일된 후 C# 소스 코드를 수정하므로 기능이 고성능이고 사용하기 쉽습니다.
설정하려면 godot 프로젝트의 기본 csproj에 이 코드를 추가하세요.
< Target Name = " PostBuild " AfterTargets = " PostBuildEvent " >
< Exec Command = " path/to/Mirage.CodeGen.exe $(TargetPath) -force " />
< Error Condition = " $(ExitCode) == 1 " />
</ Target >
< Target Name = " PrePublish " BeforeTargets = " Publish " >
< Exec Command = " path/to/Mirage.CodeGen.exe $(PublishDir)$(TargetFileName) $(TargetDir) -force " />
< Error Condition = " $(ExitCode) == 1 " />
</ Target >
Mirage.CodeGen.exe
파일을 빌드한 위치로 Path/To/Mirage.CodeGen.exe
경로를 수정합니다.
참고: 두 대상이 모두 필요합니다.
TargetPath
실행 전에 코드 생성 변경 사항이 적용되도록 편집기에서 가장 잘 작동합니다.TargetPath
빌드를 내보낼 때 복사된 경로가 아니기 때문에 PublishDir
이 필요합니다. 이 예에서는 심볼릭 링크를 사용하여 두 번째 프로젝트에 Mirage.Godot 스크립트를 포함합니다.
해당 심볼릭 링크를 사용하여 이 저장소를 복제하려면 관리자 권한으로 실행하세요.
git clone -c core.symlinks=true [email protected]:James-Frowen/Mirage.Godot.git
zip 파일과 같이 심볼릭 링크 없이 다운로드하는 경우 src/Mirage.Godot/Scripts
에서 src/Mirage.Godot.Example1/Mirage.Godot
로 파일을 수동으로 복사(이동 아님)해야 합니다.
로컬에서 코드 생성을 개발할 때 PostBuild 대상의 시작 부분에 이 단계를 추가하여 코드 생성 프로젝트를 실행하기 전에 다시 빌드할 수 있습니다.
< Exec Command = " dotnet build $(ProjectDir)/../Mirage.Core/Mirage.CodeGen/Mirage.CodeGen.csproj -c Release " />