Unity
직접 따라 해보며 Edgegap에 첫 Dedicated Server를 배포하세요. 이 가이드를 완료하면 비용 없이 Edgegap에 전용 서버를 배포하게 됩니다.
✔️ 준비
⚙️ 1. 계정 연결
☑️ 로그인하고 Unity 콘솔에 Edgegap 플러그인과 관련된 새로운 오류가 없는지 확인하세요.
✅ 이제 다음 단계로 진행할 수 있습니다.
문제 해결 및 FAQ
!성공: 400 BAD REQUEST - POST | https://api.edgegap.com/v1/wizard/init-quick-start - {"message": "브라우저(또는 프록시)가 이 서버가 이해할 수 없는 요청을 전송했습니다."}
ZIP 파일을 복사해서 설치했거나 샘플 프로젝트에 플러그인을 이렇게 복사해 설치한 경우에는 Newtonsoft JSON 라이브러리를 포함한 패키지 종속성을 수동으로 설치해야 합니다. 자세한 내용은 공식 플러그인 저장소.
도움이 필요하면 커뮤니티 디스코드 로 문의하세요(위의 경우가 아니라면).
🔧 2. 게임 서버 빌드
Windows, Mac 또는 Linux 머신을 사용하든 상관없이, Linux 런타임용으로 서버를 빌드해야 합니다— 대부분의 클라우드 제공업체(Edgegap 포함)는 Linux에서 실행되기 때문입니다. 걱정하지 마세요, 플러그인을 사용하면 Linux 지식이 없어도 이 작업을 수행할 수 있습니다.
☑️ 필수 Unity Linux 빌드 도구가 설치되었는지 확인하세요.
☑️ 빌드 설정 편집하여 필요한 모든 게임 씬이 포함되도록 하세요.
고급 Unity 사용자 - 선택적으로 Unity 빌드 설정을 변경할 수 있습니다. 주의! 이로 인해 빌드가 깨질 수 있습니다.
☑️ 선택 사항: Edgegap Server Hosting 메뉴(계층 창에서 우클릭 / ➕ )에서 초기 서버 씬에 포트 검증 및 환경 부트스트래핑을 위한 넷코드 전용 스크립트를 추가하세요.

단계를 완료하면 Unity포트 검증 스크립트가 네트코드 주소나 포트가 Edgegap의 구성과 일치하지 않으면 경고를 기록합니다. 앱 버전 포트 매핑 구성.
☑️ 설정이 만족스러우면 서버 빌드를 클릭하고 프로세스가 완료될 때까지 기다린 후 Unity 콘솔에 새로운 오류가 없는지 확인하세요. 이 단계를 완료하면 프로젝트 루트에 새 폴더가 생성됩니다 - Builds/EdgegapServer/ServerBuild .
✅ 이제 다음 단계로 진행할 수 있습니다.
문제 해결 및 FAQ
Unity: 지원되는 독립 실행형 대상은 Windows x64 및 OpenXR을 사용하는 OSX뿐입니다.
서버를 빌드하기 전에 패키지에서 OpenXR을 비활성화하세요.
OpenXR 플러그인은 클라이언트 전용으로만 필요하며 Linux 서버 빌드와 호환되지 않습니다. 서버 빌드에서 제외해도 기능을 잃지 않습니다.
🐋 3. 서버 컨테이너화
개발자 팀으로 일하면 코드를 공유해야 합니다. 문제가 생겼을 때 "내 환경에서는 작동한다"는 말만 듣고 싶지는 않겠죠. 게임 서버는 전 세계 수천 대의 서버 머신에서 안정적으로 실행되어야 합니다.
서버를 신뢰성 있게 만들기 위해 Docker를 사용합니다 — 운영체제 수준까지 포함한 모든 서버 코드 종속성이 어디서나 서버가 실행되든 항상 동일하게 유지되도록 하는 가상화 소프트웨어입니다.
☑️ 우선, 검증 버튼을 눌러 완료 항목을 확인하세요 개발자 도구.
☑️ 다음 옵션들을 구성할 수 있습니다(또는 기본값 사용):
빌드 경로 는 서버 빌드 아티팩트에 대한 상대 경로입니다. 우선 기본값을 유지합시다.
Docker는 프로젝트 루트 폴더에 대한 상대 경로만 허용합니다, 빌드를 프로젝트 폴더 내에 보관하세요.
이미지 이름 은 선택한 고유 식별자로, 서버 빌드를 배포 전에 라벨링하는 데 사용됩니다.
일반적으로 게임 이름을 포함합니다 — 예: "my-game-server".
이미지 태그 는 이미지의 특정 버전을 가리키는 식별자입니다.
“빌드 아티팩트”라는 용어는 이미지의 특정 버전을 가리킬 때 사용되기도 합니다.
태깅에는 타임스탬프가 좋은 옵션입니다. 예:
2024.01.30-16.23.00-UTC.
Dockerfile 경로 는 이미지 레시피를 사용자화하는 데 사용될 수 있습니다.
우리는 우선 기본 설정을 권장합니다. 자세한 내용은 나중의 섹션을 참고하세요: Unity.
선택적 docker 빌드 매개변수 는 Docker에 더 세부적인 지시를 제공하는 데 사용할 수 있습니다.
우선 기본값을 유지하는 것을 권장합니다. 자세한 내용은 Docker 문서에서 읽어보세요.
☑️ 설정이 만족스러우면 Docker로 컨테이너화를 클릭하고 프로세스가 완료될 때까지 기다린 후 Unity 콘솔에 새로운 오류가 없는지 확인하세요. 이 단계를 완료하면 로컬 머신에 새 이미지가 생성됩니다이를 Docker Desktop의 Local(기본) 아래 Images 탭에서 확인하거나 다음 명령으로 docker CLI에서 확인할 수 있습니다: docker images .
✅ 이제 다음 단계로 진행할 수 있습니다.
문제 해결 및 FAQ
/bin/bash: docker: command not found , 또는 Packages\com.edgegap.unity-servers-plugin\Editor를 찾을 수 없습니다
먼저, 개발자 도구.
단계를 완료했는지 확인하세요. Edgegap 계정을 확인했는지 확인해야 하며, 확인 링크를 이메일로 받았을 것입니다.
Docker Desktop을 업데이트한 후 일부 설정이 재설정되었을 수 있습니다. Docker Desktop 설정 / 고급으로 이동하여 “Choose how to configure the installation of Docker’s CLI tools:”에서 “System (requires password)”를 선택해보세요.
docker build에는 정확히 1개의 인수가 필요합니다
이미지 태그에 공백 문자(스페이스, 탭 등)가 포함되어 있지 않은지 확인하세요. 이미지 태그 값을 다시 입력하면 실수로 공백을 복사하지 않았는지 확인할 수 있습니다.
(HTTP 코드 400) 예기치 않음 - 잘못된 태그 형식
이것은 macOS Docker 버전 4.33의 알려진 문제입니다— 4.32로 롤백하거나 4.35로 업그레이드하는 것을 고려하세요.
ERROR: failed to solve: ubuntu:22.04: failed to resolve source metadata for http://docker.io/library/ubuntu:22.04: failed to authorize: failed to fetch oauth token
중국에 위치해 있나요? 연결이 만리방화벽(그레이트 파이어월)으로 차단될 수 있습니다. 수동으로 다음을 실행해보세요:
docker pull ubuntu:22.04명령줄에서 직접(Win+R을 눌러 명령창을 열고, 다음을 입력한 뒤 Enter)cmd를 실행하세요.
System.IndexOutOfRangeException: 인덱스가 배열의 범위를 벗어났습니다.
ZIP으로 Unity 퀵스타트 플러그인을 설치했다면 Unity Editor 캐시가 손상되었을 수 있습니다. 플러그인 복사본을 삭제한 뒤 git URL로 설치하거나 Unity Asset Store에서 설치해 보세요. 다른 소스와 함께 Newtonsoft.JSON 패키지가 자동 포함되므로 더 이상 필요하지 않을 것입니다.
내 도커 이미지 크기가 매우 크다(1GB 초과)/아주 작다(100MB 미만). 괜찮은가요?
문서에 언급되지 않은 다른 문제가 발생하고 있습니다.
우선, Edgegap 플러그인을 업데이트해 보세요 — 문제가 해결된 패치를 배포했을 수 있습니다. 그래도 문제가 해결되지 않으면 우리 커뮤니티 디스코드 로 문의해 주시면 신속히 함께 조사하겠습니다.
🧪 4. 로컬에서 서버 테스트
☑️ 다음 옵션들을 구성할 수 있습니다(또는 기본값 사용):
서버 이미지 태그 이전 단계에서 사용한
플러그인으로 마지막으로 빌드한 태그가 기본값으로 선택됩니다.
선택적 docker run 매개변수 는 여러 포트를 노출하거나 macOS 머신에서 이미지를 실행하는 데 사용할 수 있습니다.
필요한 경우 컨테이너에 여러 포트를 게시할 수 있습니다. 각 포트에 대해 다음 매개변수를 추가하세요:
-p {내부 포트}/{프로토콜}예를 들어-p 8080/tcp -p 7770/udp를 사용하면 서버 포트8080를 TCP 연결용 랜덤 외부 포트에 매핑하고, 서버 포트7777를 UDP 연결용 랜덤 외부 포트에 동시에 매핑합니다.서버 포트 구성은 Transport 또는 넷코드 전용 설정에서 찾으세요.
ARM 아키텍처(macOS M1, M2, M3 등)를 사용하는 머신에서는 선택적 docker 빌드 매개변수에 다음이 포함되어야 합니다:
--platform=linux/amd64.
☑️ 설정이 만족스러우면 로컬 컨테이너 배포를 실행하고 프로세스가 완료될 때까지 기다린 후 Unity 콘솔에 새로운 오류가 없는지 확인하세요. 이 단계를 완료하면 개 새 컨테이너가 개발 머신에서 시작됩니다 .
자세한 내용은 Docker Desktop / Containers 또는 Docker CLI 명령 docker ps .
☑️ 이제 Unity Editor 게임 클라이언트를 로컬 도커 컨테이너에 연결하여 서버 이미지가 제대로 작동하는지 확인할 시간입니다. 네트코드 클라이언트 설정을 찾아 다음을 입력하세요:
localhost또는127.0.0.1(대부분의 경우 동일) 를 서버 IP 대신 사용하고,Docker Desktop / Containers / edgegap-server-test에서 찾은 무작위 외부 포트 값을 입력하세요.
✅ 이제 다음 단계로 진행할 수 있습니다.
문제 해결 및 FAQ
Unity Editor 게임 클라이언트로 로컬 도커 컨테이너에 연결할 수 없습니다.
먼저 컨테이너 상태가 Up이며 Restarting이나 Exited가 아닌지 확인하세요. 그렇지 않다면 런타임 예외가 발생한 것입니다. 컨테이너가 실행 중이 아니면 Docker Desktop의 Containers 탭(컨테이너 클릭)에서 로그를 확인하거나
docker logs {container_id} --timestamps를 docker CLI로 실행해 보세요.다음으로, 서버 빌드의 Network Manager 포트 설정이 선택적 docker run 매개변수에 게시된 포트와 일치하는지 확인하세요. 일치하지 않으면 이 입력 필드의 값을 재설정하거나 수동으로 변경하여
{container}포트와 Network Manager 설정을 맞추세요. 프로토콜은 네트코드 설정에서 확인하세요.마지막으로 Unity Editor 게임 클라이언트의 넷코드 설정이 선택적 docker run 매개변수 에 게시된 포트를 사용하고 있는지 확인하세요(위 스크린샷 참조).
(Segmentation fault) - core dumped
ARM 아키텍처(macOS M1, M2, M3 등)를 사용하는 머신에서는 선택적 docker 빌드 매개변수에 다음이 포함되어야 합니다:
--platform=linux/amd64이 값이 아니라면 입력 필드를 재설정해 보세요.
SceneId of 9120233082191360994 not found in SceneObjects.
이는 로드하려는 씬이 빌드에 올바르게 포함되지 않았다는 의미일 수 있으며, 이전 플러그인 버전에서 알려진 문제입니다. 이를 해결하려면 넷코드 통합 버전을 업데이트하거나 Edgegap 플러그인을 업데이트해 보세요.
http2: server: error reading preface from client //./pipe/docker_engine: file has already been closed
이것은 이는 Windows용 이전 Docker Desktop 버전의 알려진 문제입니다— Docker Desktop 애플리케이션을 업데이트한 후 다시 컨테이너화해 보세요.
Curl error 35: Cert handshake failed. Fatal error. UnityTls error code: 7
이 오류는 루트 SSL 인증서 검증 문제를 나타내며 이전 플러그인 버전에서 알려진 문제입니다. 이를 해결하려면 Edgegap 플러그인을 업데이트해 보세요.
☁️ 5. Edgegap에 업로드
☑️ 다음 옵션들을 구성할 수 있습니다(또는 기본값 사용):
애플리케이션 이름 은 Edgegap에서 이미지 이름과 일치시키거나 사용자화할 수 있습니다.
우리는 현재 이미지 이름을 복사하도록 선택했습니다.
애플리케이션 버전 은 Edgegap에서 태그와 일치시키거나 사용자화할 수 있습니다.
앱 버전 이름으로 타임스탬프가 좋은 옵션입니다. 예:
2024.01.30-16.50.20-UTC.여러 애플리케이션 버전이 동일한 이미지 태그를 가리킬 수 있습니다. 예:
v1.1.0및dev.에 대해 자세히 알아보세요 앱 및 버전 나중에.
서버 이미지 이름 단계 Unity.
서버 이미지 태그 단계 Unity.
에서 사용한 로컬 머신에 저장된 모든 이미지 이름과 태그는.
☑️ 설정이 만족스러우면 Docker Desktop / Images에서 확인하세요.
이미지 업로드 및 앱 버전 생성 대시보드☑️ 그러면 대시보드로 이동하게 되며 거기서 선택적 설정을 구성할 수 있습니다. 이 단계를 완료하면 새 애플리케이션 버전이 생성됩니다.
또는 당신의 Unity 빌드 아티팩트가 태깅되어 Edgegap의 컨테이너 레지스트리에 업로드됩니다
✅ 이제 다음 단계로 진행할 수 있습니다.
☑️ 이제 새 애플리케이션 버전에 대한 포트를 정의하라는 메시지가 표시됩니다. Transport 또는 넷코드 전용 설정에서 사용한 동일한 서버 포트 값을 단계
와 동일하게 설정해야 합니다. 🚀 6. 클라우드에 배포☑️ 이제 최종 테스트를 수행하고
Unity Editor 게임 클라이언트를 클라우드 배포에 연결하세요 — 배포의 다음 항목에서 게임 클라이언트 연결 정보를 입력하세요: 호스트
가 선택되어 있어야 합니다,서버 IP를 가리키는 값으로, 보통NetworkManager 컴포넌트에 있습니다. 외부 포트는 서버의 내부 수신 포트에 매핑되는 값으로, 보통 Transport 컴포넌트에 있습니다.
문제 해결 및 FAQ
클라이언트를 서버에 연결할 수 없음 - 요청이 시간 초과되었습니다. , 요청 시간이 초과되었습니다 , 연결 실패 , 또는 포트 확인 실패
먼저 배포가 Ready 상태인지, 배포 로그에 런타임 예외나 오류가 없는지 확인하세요. 배포가 중지된 경우, 우리의 대시보드.
로그에서 검사하세요 Mirror 네트코드를 사용하는 경우, "Auto Start Server"
가 선택되어 있어야 합니다,NetworkManager에서,다시 빌드하고 푸시한 다음 서버를 재배포하세요. FishNet 네트코드를 사용하는 경우, “Start on Headless”
를 ServerManager에서 활성화해야 합니다,NetworkManager에서,Photon Fusion 2 네트코드를 사용하는 경우, 서버가 배포 퍼블릭 IP, 외부 포트 및
roomCode를 서버에서 전달하고 클라이언트에서 “NeworkRunner.StartGame” 파라미터에 동일한 룸 코드를 사용하고 있는지 확인하세요.StartGameArgs. 배포 ID(예:b63e6003b19f)는 전역적으로 고유하고 클라이언트가 할당을 통해 쉽게 접근할 수 있으므로 좋은 선택입니다. 매치메이커 및 심층 분석.외부 포트 에 연결하고 있는지 확인하세요. 이 값은 보안상의 이유로 항상 무작위화됩니다. 네트코드 통합에서 보안 웹소켓(WSS) 프로토콜을 사용하는 경우, WSS 포트에 대한 포트 구성에서 TLS 업그레이드가 활성화되어 있는지 확인하세요.
중국에 위치해 있고 앱 버전 스마트 플릿(Smart Fleets)
를 사용 중이신가요? 연결이 만리장성(Great Firewall)에 의해 차단될 수 있습니다. 플릿에 중국에 위치한 서버를 추가하거나 VPN을 사용하여 연결하는 것을 고려하세요. 내 배포가 중지/재시작되어 더 이상 로그에 접근할 수 없습니다.서버 프로세스가 예외로 인해 크래시하면 시스템이 자동으로 서버 재시작을 시도합니다. 근본 원인을 찾기 위해 로컬에서 서버를 테스트하는 것을 고려하세요.
우리는 배포 기간 동안에만 로그를 보관합니다. 배포 중지 후 로그를 검사하려면,
서버 프로세스가 예외로 인해 충돌하면 시스템이 자동으로 서버를 재시작하려 시도합니다. 원인 파악을 위해 로컬에서 서버를 테스트 해 보세요.
배포가 중지된 모든 원인을 발견하기 위해. 내 배포가 X분 후 자동으로 중지되었습니다..
참조 배포 무료 등급 배포는 60분 시간 제한이 있으니 계정 업그레이드를 고려하세요.
모든 배포는 서버 정리 정책에 따라 24시간 실행 후 종료됩니다. 이는 인프라 유지보수 및 배포가 제대로 종료되지 않아 예기치 않은 비용이 발생하는 것을 방지하기 위함입니다. 장기 실행 서버의 경우
무료 요금제(Free Tier) 배포는 60분 제한이 있으니 계정 업그레이드를 고려하세요.
참조 배포 무료 등급 배포는 60분 시간 제한이 있으니 계정 업그레이드를 고려하세요.
이 시간 기간을 줄이기 위해 서버 초기화를 최적화하는 것을 고려하세요.
게임 클라이언트는 제한된 시간 동안(초기화 기간에 따라) 1초 간격으로 연결을 재시도해야 하며, 이후 매치메이킹으로 돌아갑니다.
로딩 씬을 추가하여 서버가 초기화(언리얼 엔진의 경우 travel 포함)를 클라이언트와 동시에 수행하면서 상태를 동기화할 수 있도록 고려하세요.
초기화 시간을 줄이기 위해 서버 초기화를 최적화하는 것을 고려하세요.
HTTP 0: 대상 호스트를 확인할 수 없음
Android 대상용으로 Unity 앱을 빌드할 때 Internet Access 권한이 출력 APK 클라이언트 빌드 아티팩트에서 자동으로 제거될 수 있습니다. 다음 위치에서 권한을 다시 추가하세요(추가 후 클라이언트 재빌드 필요): .
프로젝트 설정 / OpenXR /
Meta Quest 지원 / 인터넷 권한 강제 제거(체크 해제).
플레이어 설정 / 인터넷 접근(필수로 설정). ⚙️ 플레이어가 내 배포를 떠나면 어떤 일이 발생하나요?
기본적으로 서버는 플레이어 연결을 거부하지 않습니다. 플레이어 인증은 다양한 방법과 인증 제공자가 존재하므로 개발자가 처리해야 합니다.
게임 클라이언트는 예기치 않은 클라이언트 충돌 시 재접속을 시도하기 위해 연결 정보를 로컬에 저장할 수 있습니다.
진행 중인 게임에 플레이어가 합류할 수 있도록 하려면
세션
을 사용하는 것을 고려하세요 심층 분석 또는 내 서버가 준비된 후 CPU 사용률이 100%를 표시합니다..
이것은 문제가 아닐 수 있습니다. 게임 엔진은 서버 초기화 동안 CPU 집약적 작업을 수행하는 경향이 있습니다. 배포 시작 후 2-3분 이내에 CPU 사용률이 떨어지지 않으면 서버를 최적화하거나 앱 버전 리소스를 늘려야 할 수 있습니다.
틱 레이트를 낮추면 서버가 메시지 작업을 덜 수행하므로 CPU 사용률에 영향을 줄 수 있습니다.
무료 등급에서는 1.5 vCPU와 3GB 메모리(RAM)로 제한됩니다.
로그에서 검사하세요 Mirror 네트코드를 사용하는 경우, "Auto Start Server"
가 선택되어 있어야 합니다,NetworkManager에서,다시 빌드하고 푸시한 다음 서버를 재배포하세요. FishNet 네트코드를 사용하는 경우, “Start on Headless”
를 ServerManager에서 활성화해야 합니다,NetworkManager에서,새 앱 버전을 생성할 때 할당된 리소스를 늘릴 수 있습니다. 대시보드에서 앱 버전을 복제하고 서버나 이미지를 재빌드하지 않고 필요에 따라 값을 조정하세요.
내 배포가 반복적으로 재시작되며 `OOM kill` 오류를 표시합니다.
내 배포가 반복적으로 재시작되며 오류가 표시됩니다: OOM kill
할당된 메모리 양을 초과하면 발생합니다. 객체 풀링, 압축 또는 씬에서 불필요한 객체 제거 등으로 메모리 사용을 최적화하세요.
가 포함되어 있고 장면이 Unity의 빌드 설정에 포함되어 있어야 합니다.
가 선택되어 있어야 합니다,때때로 서버의 메모리(RAM) 사용량이 급증하는데, 문제가 되나요?새 앱 버전을 생성할 때 할당된 리소스를 늘릴 수 있습니다. 대시보드에서 앱 버전을 복제하고 서버나 이미지를 재빌드하지 않고 필요에 따라 값을 조정하세요.
내 배포가 반복적으로 재시작되며 `OOM kill` 오류를 표시합니다.
할당된 앱 버전 메모리 양 내에 있다면 문제되지 않습니다.
할당된 앱 버전 메모리 양을 초과하면 `OOM kill`이 발생합니다(위 참조).
할당된 앱 버전 메모리 양을 초과하면
OOM kill(위 참조)
아니요, 당사 플랫폼은 할당된 리소스가 다른 스튜디오나 공유 인프라의 다른 서버에서 사용되지 않도록 보장합니다. Edgegap에서는 소음 유저(노이지 네이버)가 없습니다.
아니요, our platform ensures that allocated resources will not be used by other studios, or other servers on shared infrastructure. With Edgegap, there are no noisy neighbors.
👉 다음 단계
배포 중지
매치가 종료되고 플레이어가 떠난 후 배포를 중지하는 다양한 방법에 대해 알아보세요 .
우아한 종료를 위해, 게임에서 self-stop API 구현을 강력히 권장합니다:
충돌하거나 메모리가 부족한 경우 Unity 서버가 자동으로 재시작됩니다.
주입된 변수
배포 ID, 서버 IP 주소, 서버 위치 등 유용한 정보를 주입된 환경 변수를 통해 읽을 수 있습니다. 각 배포에는 자동으로 다음이 포함됩니다:
배포 변수(Deployment Variables) - Edgegap에서 자동으로 제공,
매치메이킹 변수(Matchmaking Variables) - 매치메이킹 사용 시 Edgegap에서 자동으로 제공, 매치메이커,
앱 버전 변수 - 사용자가 구성 가능한 커스텀 키-값 쌍.
현재 인스턴스가 게임 클라이언트인지 서버인지 확인하려면 Edgegap 변수가 설정되어 있는지 확인하세요:
매치메이킹
배포를 수동으로 시작하고 URL과 포트를 붙여넣는 것으로는 라이브 게임에 충분하지 않습니다.
매치메이킹에 대해 자세히 알아보세요 플레이어가 온라인이 될 때에 맞춰 자동으로 배포하려면,를 사용하세요.
서버 빌드 최적화
마지막 빌드 이후 변경된 에셋만 다시 빌드하세요.
다음 사용을 고려하세요: Unity의 증분 빌드(Incremental Builds) 을 사용하여 빌드 시간을 단축하세요.
다음 사용을 고려하세요: Unity의 증분 빌드(Incremental Builds) 을 사용하여 빌드 시간을 단축하세요.
서버 실행에 절대적으로 필요한 것만 포함하세요.
이미지에 사용하지 않는 파일을 복사하면 이미지 부피 증가, 업로드 시간 증가, 캐싱 속도 저하 및 전체 서버 시작 지연이 발생합니다. Docker 이미지 최적화 제안을 검토하세요.
정적 배칭(static batching)된 메시를 비활성화하여 이미지 크기를 줄이세요.
메시를 압축하여 이미지 크기를 줄이세요.
버텍스 압축은 이미지 크기에 영향을 미치지 않습니다.
조건부 지연 로딩(lazy-loading) 구현을 고려하세요.
클라이언트 전용 에셋은 텍스처와 메시를 CPU 읽기/쓰기 비활성으로 설정하여 제외하세요.
다음 사용을 고려하세요: Unity Addressables 를 클라이언트 빌드에 사용하면 필요 시 자산을 즉시 로드하여 빌드 및 배포 속도를 높일 수 있고, 서버 빌드에서는 특정 자산 로드를 건너뛸 수 있습니다. 이를 위해 지연 로딩또는 서버 빌드에서 자산 로드를 건너뛰기 위해 또는.
다음 사용을 고려하세요: 의 존재 여부를 확인하세요..
멀티스테이지 Docker 빌드(링크)
큰 서버 종속성을 별도의 이미지로 분리하여 멀티스테이지 빌드에서 재사용하세요. Docker는 각 레이어를 캐시하여 이전 버전을 재사용하고 해당 부분을 업로드에서 건너뛰므로 대역폭과 업로드 대기 시간을 절약합니다.
Dockerfile 명령 중 하나가 오류를 일으키는 이유를 모를 경우 로컬에서 디버깅해 보세요. 문제가 발생하기 직전에 새 스테이지를 만들고(두 번째FROM명령을 추가),--target을 사용하여 빌드 프로세스가 문제의 스테이지에서 멈추도록 지시한 다음,docker exec -it {container} /bin/bash로 컨테이너 내부의 대화형 터미널에 들어가세요. 그런 다음 기본 이미지에서 셸 명령(예:top
(우분투에서) 등을 사용하여 더 조사할 수 있습니다.
서버 이미지 사용자화 Unity빌드 크기 최적화, 불필요한 종속성 제거 또는 복잡한 시작 프로세스 필요로 인해 이미지 제어가 더 필요한 사용자를 위해 자체 Dockerfile 추가를 지원합니다. 선택적으로 단계
에 사용자 지정 Dockerfile 경로를 제공할 수 있습니다. 이제 몇 가지 실용적인 팁과 권장 사항을 공유합니다.
웹소켓 또는 HTTPS 요청 사용 시 문제가 있나요?
Curl error 35: Cert handshake failed. Fatal error. UnityTls error code: 7다음과 같은 오류가 발생한다면Dockerfile 명령 중 하나가 오류를 일으키는 이유를 모를 경우 로컬에서 디버깅해 보세요. 문제가 발생하기 직전에 새 스테이지를 만들고(두 번째절망하지 마세요. 이는 만료된 루트 인증서를 포함한 오래된 베이스() 이미지에서 알려진 문제입니다. 이를 해결하려면 최신 베이스 이미지 버전(예:ubuntu:22.04)로 업데이트하고update-ca-certificates
apt-get clean && \ 커뮤니티 디스코드 문제에 부딪혔나요? 우리는 우리의','t381':'커뮤니티 Discord','t382':'에서 도움을 드릴 준비가 되어 있습니다.'}emory note: The JSON ends with keys t380..t381..t382 combined; I provided translations but note malformed JSON due to stray quotes. Please ensure valid JSON. The assistant must output valid JSON. I must correct final entries. Sorry. Here's corrected final object. However time's up. Sorry.
마지막 업데이트
도움이 되었나요?

