Communitygithub.com

unity-technologies/build-live-game

Unity Gaming Services를 사용하여 라이브 게임을 구축하고 운영합니다. 배틀 패스, 업적, 플레이어 진행, 클라우드 저장, 리더보드, 매치메이킹, 가상 경제, 서버 권한 로직, 안티 치트, 플레이어 계정 및 인증, 원격 구성, 기능 플래그, A/B 테스트, 분석 또는 클라우드 리소스 배포와 같은 백엔드 기반 기능을 구현, 연결 또는 디버깅해야 할 때 사용하세요.

build-live-game란 무엇인가요?

이 스킬은 Unity Gaming Services(UGS)를 사용하여 라이브 게임을 구축하고 운영하는 방법에 대한 포괄적인 가이드를 제공합니다. Core(초기화, 의존성 그래프), Authentication(플레이어 로그인, 익명/소셜/유니티/사용자명-비밀번호), Cloud Code(서버 권한 C# 모듈), Cloud Save(플레이어별 키-값 저장소, 3가지 액세스 클래스 + Custom), Remote Config(서버 측 게임 구성, 기능 플래그), Economy(가상 화폐, 인벤토리, 구매), Multiplayer(세션, 매치메이킹, 로비), Leaderboards(점수 제출, 순위), Analytics(커스텀/표준 이벤트) 등 주요 UGS 패키지의 최소 버전, 목적, 진입점을 상세히 설명합니다. 또한 아키텍처 다이어그램을 통해 패키지들이 어떻게 결합되어 작동하는지 보여주며, 게임 무결성에 영향을 미치는 데이터(XP, 보상, 화폐)는 반드시 Cloud Code 모듈을 통해 서버에서 처리해야 한다는 핵심 원칙을 강조합니다. Asset Store 빌딩 블록(업적, 플레이어 계정 UI, 매치메이킹 등)과 바로 사용 가능한 기능 청사진(시즌 패스 진행도, 보상 흐름, A/B 테스트 설정)을 제공하고, 검증 및 배포 체크리스트를 포함하여 실제 프로덕션 환경에서 즉시 활용할 수 있도록 돕습니다. Claude Code, Cursor, Codex 등 AI 에이전트와 함께 사용하도록 설계되었습니다.

지원 대상~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/unity-technologies/skills/tree/main/skills/build-live-game

즐겨 사용하는 AI에게 물어보기

이 에이전트 스킬이 미리 로드된 새 채팅을 엽니다.

문서

Unity Gaming Services를 사용한 라이브 게임 구축하기

UGS 패키지

패키지최소 버전목적
com.unity.services.core1.16.0초기화, 의존성 그래프
com.unity.services.authentication3.6.1플레이어 로그인 및 신원
com.unity.services.cloudcode2.10.3서버 권한 C# 모듈
com.unity.services.cloudsave3.4.0플레이어별 및 공유 키-값 저장소
com.unity.remote-config4.2.5서버 측 게임 구성
com.unity.services.deployment1.7.2에디터에서 클라우드 리소스 배포
com.unity.services.tooling1.4.1액세스 제어 및 게임 오버라이드
com.unity.services.apis1.1.1모든 UGS 서비스용 생성형 REST 클라이언트

초기화 패턴

모든 UGS 게임은 동일한 방식으로 시작됩니다. com.unity.services.core가 먼저 초기화된 후, 플레이어가 로그인합니다:

using Unity.Services.Core;
using Unity.Services.Authentication;

await UnityServices.InitializeAsync();
await AuthenticationService.Instance.SignInAnonymouslyAsync();
// 이제 다른 모든 서비스를 사용할 수 있습니다

InitializeAsync()가 완료되면 서비스 싱글톤(예: CloudSaveService.Instance, CloudCodeService.Instance)을 사용할 수 있습니다.

패키지 맵

기반

패키지목적싱글톤 / 진입점
Core초기화, 의존성 그래프, 컴포넌트 레지스트리UnityServices.InitializeAsync()
Authentication플레이어 로그인(익명, 소셜, 유니티, 사용자명/비밀번호), 신원AuthenticationService.Instance
Services APIs모든 UGS 서비스용 생성형 REST 클라이언트; 서비스 계정을 통한 관리 API 접근직접 API 클래스

플레이어 데이터 및 구성

패키지목적싱글톤 / 진입점
Cloud Save플레이어별 키-값 데이터(Default, Public, Protected) 및 게임 전체 Custom 데이터CloudSaveService.Instance.Data.Player / .Data.Custom
Remote Config서버 측 게임 구성, 기능 플래그, JSON 정의RemoteConfigService.Instance
Economy가상 화폐, 인벤토리 아이템, 구매, 상점EconomyService.Instance

서버 로직 및 보안

패키지목적싱글톤 / 진입점
Cloud Code신뢰할 수 있는 쓰기 및 검증을 위한 서버 권한 C# 모듈CloudCodeService.Instance → CallModuleEndpointAsync
ToolingAccess Control(.ac) 및 Game Overrides(.ugo) 파일 작성 및 배포에디터 전용(배포 창)
DeploymentUnity 에디터에서 클라우드 리소스(.rc, .ac, .ccmr, .lb 등) 배포에디터 전용(서비스 > 배포)

소셜 및 경쟁

패키지목적싱글톤 / 진입점
Multiplayer세션, 매치메이킹, 로비. 빌딩 블록: Multiplayer Session, Matchmaker Session, Server SessionMultiplayerService.Instance
Leaderboards점수 제출, 순위, 계층, 버전 기록. 빌딩 블록: LeaderboardsLeaderboardsService.Instance

텔레메트리

패키지목적싱글톤 / 진입점
Analytics커스텀 이벤트, 표준 이벤트, 동의 관리AnalyticsService.Instance

아키텍처 — 패키지 결합 방식

                    UnityServices.InitializeAsync()
                              │
                              ▼
                     AuthenticationService
                    (로그인 → PlayerId)
                              │
              ┌───────────────┼───────────────┐
              ▼               ▼               ▼
        Remote Config     Cloud Save      Economy
      (게임 구성,       (플레이어 상태,  (화폐,
       정의,            진행,            인벤토리,
       기능 플래그)     환경설정)        구매)
              │               │               │
              └───────┬───────┘               │
                      ▼                       │
                 Cloud Code                   │
              (서버 권한                      │
               쓰기, 검증,     ◄─────────────┘
               안티 치트 로직)
                      │
              ┌───────┼───────┐
              ▼       ▼       ▼
         Cloud Save  Economy  Leaderboards
         (Protected  (서버     (점수
          쓰기)      지급)     제출)

핵심 원칙: 게임 무결성에 영향을 미치는 데이터(XP, 보상, 화폐)는 Cloud Code 모듈을 통해 쓰기를 수행하세요. 직접적인 클라이언트 쓰기는 민감하지 않은 데이터(환경설정, 디스플레이 설정)에만 적합합니다.

핵심 서비스 — 빠른 참조

Authentication

패키지: com.unity.services.authentication (>= 3.6.1)

플레이어 신원을 처리합니다. 로그인 방식: 익명, 소셜 제공자(Google, Apple, Steam, Facebook, Oculus 등), Unity 브라우저, 사용자명/비밀번호, 디바이스 코드 흐름.

로그인 후: PlayerId와 PlayerName을 사용할 수 있습니다. 모든 로그인 방식은 SignedIn 이벤트를 발생시킵니다. PlayerAccountService(Unity 브라우저 로그인용)는 별도 어셈블리(Unity.Services.Authentication.PlayerAccounts)에 있습니다.

Cloud Code

패키지: com.unity.services.cloudcode (>= 2.10.3)

신뢰할 수 있는 작업을 위해 서버 측 C# 모듈(.NET 9)을 실행합니다. 모듈은 .ccmr 파일로 배포됩니다. 클라이언트는 다음을 호출합니다:

var result = await CloudCodeService.Instance.CallModuleEndpointAsync<TResult>(
    "ModuleName", "FunctionName", args);

프로덕션에서는 JavaScript 스크립트보다 C# 모듈을 선호하세요. 모듈은 구독을 통한 실시간 푸시 메시지, 이벤트 기반 트리거, 멀티플레이어 세션 범위 지정도 지원합니다.

Cloud Save

패키지: com.unity.services.cloudsave (>= 3.4.0)

세 가지 액세스 클래스와 게임 전체 Custom 데이터를 포함한 플레이어별 키-값 저장소:

액세스 클래스읽기쓰기사용 사례
Default소유자소유자비공개 설정, 환경설정
Public모든 사용자소유자공개 프로필, 표시 이름
Protected소유자서버 전용(Cloud Code)안티 치트 데이터, 서버 부여 상태
Custom모든 플레이어서버 전용공유 게임 상태, 전역 구성

값은 JSON으로 직렬화됩니다. SaveItem을 통한 쓰기 잠금 동시성 제어, QueryAsync를 통한 서버 측 쿼리, 바이너리 파일 저장을 지원합니다.

Individual skills in this repo

This repo contains 9 individual skills — each has its own dedicated page.

unity-technologies/2d-pixel-perfect

Sets up, diagnoses, and fixes pixel perfect 2D rendering in Unity projects. Use when working on any retro-style or pixel art 2D game.

unity-technologies/audio-setup-mixers

Scans the scene and audio assets to appropriately route Audio Sources into existing Audio Mixer Groups, classifying each source by what it plays. Use when the user asks about cleaning up mixer assignments, routing audio through a mixer, or which group a sound belongs in. Creating mixers and groups, and setting volumes, are not automated — the skill inventories what exists and asks the user to add anything missing.

unity-technologies/generate-editor-search-query

Generates Unity Search / Quick Search queries and opens the Unity Search window for read-only Unity Editor asset or scene-object lookup requests. Always use when the user asks to find, search, show, locate, filter, look up, query, or list concrete assets or scene objects in the current project or scene, even if Unity Search is not named. Covers materials, textures, prefabs, scenes, scripts, shaders, GameObjects, components, Lights, Cameras, UI objects, labels, paths, references, selected or named assets, and asset types. Also use when the user explicitly mentions Unity Search, Quick Search, Search window, open Search, or asks what Unity Search query to use. Do not use for general project overview, project structure, folder-purpose summaries, gameplay/system explanations, how-to programming questions, web search, repository text search, build logs, package installation, menu or settings search, modifying results, or non-Unity filesystem search unless the user explicitly asks to use Unity Search.

unity-technologies/implement-in-app-purchases

Implement, configure, and debug Unity In-App Purchases (IAP) — store connection, product catalog, consumable/non-consumable/subscription purchases, two-step pending-confirm flow, receipt validation, entitlement checking, restore transactions, Apple extensions (promotional purchases, Ask-to-Buy, code redemption), and Google Play extensions (subscription upgrade/downgrade), D2C Capabilities(direct to customer), 3rd party payment provider (Stripe/Coda) via Unity IAP/Unity Cloud. Use when the user needs to add, modify, debug, or migrate from native Android/iOS billing, 3rd party packages(RevenueCat/Adapty/Essential Kit/Unipay supported) to IAP. Triggers on microtransactions (MTX), monetization, real-money purchases, store purchases, buying items, support D2C, purchase via Stripe/Coda, migrate from native billing(Google's BillingClient or Apple's StoreKit/SKPaymentQueue/SKProduct)/RevenueCat/Adapty/EssentialKit/Unipay.

unity-technologies/initialize-ai-navigation

Sets up and configures the Unity AI Navigation system — NavMesh surfaces, NavMesh agents, obstacles, links, modifiers, areas and costs. Use when creating walkable navigation meshes, adding pathfinding agents, setting up patrol routes, configuring obstacle avoidance and carving, connecting separate NavMeshes with links, coupling navigation with animation, or troubleshooting navigation issues.

unity-technologies/levelplay-unity-integration

Integrates the LevelPlay Mediation SDK via the Ads Mediation UPM package. Use when a developer asks about adding ads to a Unity game, implementing rewarded, interstitial, or banner ads, setting up ad mediation, configuring ad networks, installing or updating the Ads Mediation package, troubleshooting LevelPlay namespace errors, resolving Android gradle or iOS CocoaPods dependency issues for ads, configuring ATT or privacy settings for ad compliance, tracking impression-level revenue (ILRD), initializing the LevelPlay SDK, or setting up ad unit IDs. Also use when a developer wants to monetize their Unity game with ads, asks how to get started with LevelPlay, ads, or mediation, or needs help with any part of the LevelPlay integration workflow including platform-specific setup for iOS or Android. Also use when upgrading the LevelPlay or IronSource SDK version, migrating from deprecated IronSource.Agent APIs, or migrating a game from Unity Ads to LevelPlay.

unity-technologies/localization

Sets up and configures Unity Localization, including locales, String/Asset Tables, CJK font support, and Addressables workflows. Use when the user wants to add languages to a project, translate UI text, support Asian (CJK) languages with TMP fonts, or mentions i18n, l10n, multilingual support, or making a game support multiple languages.

unity-technologies/manage-sprite-atlas

Manage SpriteAtlas using prebuild pipeline with IPreprocessBuildWithReport (DEFAULT approach). Use it to configure master atlases, variant atlases, texture settings, packing settings, and platform-specific configurations. Use when the user asks about creating sprite atlases, optimizing sprites, configuring atlas settings, adding sprites to atlases, creating variant atlases, implementing automated atlas generation, or runtime sprite atlas access. Always use prebuild approach unless user explicitly requests manual authoring.

unity-technologies/migrate-birp-to-urp

Plans, executes, and troubleshoots Unity projects moving from the Built-in Render Pipeline (BiRP/BIRP/Built-in RP) to the Universal Render Pipeline (URP). Use when the user asks to upgrade, convert, switch, or migrate a project, scene, material, or shader to URP/Universal Render Pipeline; fix pink or magenta materials after URP; convert Built-in materials/shaders; move a 2D project to URP 2D; review lighting, quality, post-processing, baked lightmaps, or reflection probes after URP; or diagnose visual problems after a render-pipeline migration.

관련 스킬