본문으로 건너뛰기

© 2026 Molayo

YouTube요약2026. 06. 10. 13:17

클라우드 저장 (Cloud Save)은 모든 게임에 포함되어야 합니다 (전체 프로젝트 소스 코드)

요약

Unity의 Cloud Save 서비스를 활용하여 플레이어 데이터를 저장하고 불러오는 방법을 설명합니다. 서버 구축 없이도 멀티 플랫폼 간 데이터 동기화와 설정을 관리할 수 있는 효율적인 방법을 다룹니다.

핵심 포인트

  • Unity Cloud Save를 통한 서버 및 DB 관리 부담 해소
  • 멀티 플랫폼(PC, Mobile, Console) 간 데이터 연속성 제공
  • Dictionary와 SaveAsync/LoadAsync를 활용한 데이터 처리
  • Newtonsoft를 이용한 복잡한 데이터의 역직렬화 처리

비디오: 클라우드 저장 (Cloud Save)은 모든 게임에 포함되어야 합니다 (전체 프로젝트 소스 코드)
채널: Tarodev
길이: 3분 20초
출처: 자막 (자동 생성, 영문)

클라우드 저장 (Cloud Save)은 놀랍습니다. 이 영상이 끝날 때쯤이면 여러분은 자신의 프로젝트에 이를 설치하려고 서두르게 될 것입니다. 하지만 그것이 무엇일까요? 클라우드 저장 (Cloud Save)은 Unity가 제공하는 서비스로, 플레이어 데이터를 저장하고 불러올 수 있게 해줍니다. 전통적으로는 API를 작성하고, 서버를 호스팅하며, 데이터베이스 (Database)를 연결해야 했지만, 클라우드 저장 (Cloud Save)은 이 모든 것을 대신 처리해 줍니다. 간단히 말해서, 게임에서 저장하고 싶은 플레이어 데이터가 있다면, 예를 들어 Pokemon 게임의 캐릭터 슬롯 같은 것이 있다면, 클라우드 저장 (Cloud Save)이 이를 처리해 줄 것입니다.

여러분의 게임에서 클라우드 저장 (Cloud Save)을 어떻게 사용할 수 있는지 실제 사례를 살펴봅시다. 좋아하는 게임을 다운로드했는데, 몇 년 전의 예전 저장 데이터가 기다리고 있는 것을 발견한 적이 있나요? 클라우드 저장 (Cloud Save)은 여러분의 게임에서도 이를 구현할 수 있습니다. 혹은 플레이어가 PlayStation, PC, Mobile, Xbox와 같은 여러 기기에서 게임을 계속 이어갈 수 있도록 하는 것은 어떨까요? 이것 또한 클라우드 저장 (Cloud Save)이 제공할 수 있는 또 다른 기능입니다. 플레이어가 게임을 설치할 때마다 매번 게임 설정을 구성하게 만들 필요가 있을까요? 대신 그들이 선호하는 설정을 백업해 두었다가 다음에 게임을 설치할 때 불러오면 됩니다.

모바일 게임 시장을 살펴보면, 클라우드 저장 (Cloud Save)은 일일 로그인 보상이나, 사용자가 상점에서 구매한 아이템(일반적으로 플레이어당 한 번으로 제한되는 스타터 팩 등)을 추적하는 데 도움을 줄 수 있습니다. 싱글 플레이어 게임이든 멀티플레이어 게임이든, 클라우드 저장 (Cloud Save)은 여러분의 프로젝트에 이득이 될 수 있습니다. 가장 좋은 점은 클라우드 저장 (Cloud Save)이 관대한 무료 티어 (Free tier)를 제공한다는 것입니다. 따라서 게임이 상당한 플레이어 계정에 도달하여 수익이 발생할 가능성이 높은 시점 전까지는 비용을 지불할 필요가 없으며, 그때가 되면 비용은 미미할 것입니다. 프로젝트에 클라우드 저장 (Cloud Save)을 설치하려면 패키지 매니저 (Package Manager)에서 검색하기만 하면 됩니다. 만약 이것이 여러분이 설치하는 첫 번째 Unity 서비스라면, 아마도 다음과 같은 연결 창이 나타날 것입니다: 새 프로젝트를 생성하거나, 이전에 생성했다면...

대시보드에서 이 Unity 게임을 위한 프로젝트를 생성한 다음, 해당 프로젝트에 연결하세요. 자, 이제 코드를 살펴보고 데이터를 저장하기 위해 실제로 Cloud Save (클라우드 저장)를 어떻게 사용하는지 알아보겠습니다. 데이터를 딕셔너리 (Dictionary)에 삽입한 다음 SaveAsync 함수를 호출합니다. 딕셔너리를 사용하는 이유는 여러 개의 데이터를 병렬로 저장할 수 있기 때문입니다. 각 항목에는 조회를 위한 키 (Key)와 데이터 자체가 필요합니다. 데이터를 로드할 때는 수집하려는 키들의 해시셋 (HashSet)을 생성하고 LoadAsync 함수를 호출합니다. 그러면 반환된 데이터가 포함된 딕셔너리를 얻게 되며, 해당 키를 사용하여 데이터를 추출할 수 있습니다. 클래스 (Class)와 같이 더 복잡한 데이터를 다루는 경우, Unity는 저장할 때 직렬화 (Serialization)를 자동으로 처리해 줍니다. 하지만 로드할 때는 역직렬화 (Deserialization)를 직접 처리해야 합니다. 제가 기존의 JsonUtility 대신 여기서 Newtonsoft를 사용하고 있는 것을 눈치채셨을 겁니다. 그 이유는 Unity가 Newtonsoft를 밀어주고 있으며, 실제로 Cloud Save SDK에서도 이를 사용하고 있기 때문입니다. 솔직히 Cloud Save SDK가 이 역직렬화 과정을 추상화하여 제공하지 않는다는 점은 다소 의아하게 느껴지지만, 아마도 향후 업데이트에서 기대할 수 있지 않을까 합니다. 그동안 저는 Cloud Save 사용을 간소화하기 위해 깔끔하고 작은 래퍼 (Wrapper)를 작성했습니다. 이 래퍼를 사용하면 사용법은 다음과 같이 보입니다.

[IMG:1]

정말 매우 간단합니다. 여러분이 Cloud Save를 쉽게 시작할 수 있도록, 다운로드하여 플레이해 볼 수 있는 재미있는 작은 게임을 만들었습니다. 이 게임에는 세 개의 잠재적 슬롯이 있는 캐릭터 선택 화면이 있으며, 이 모든 정보는 Cloud Save에 저장됩니다. 캐릭터를 선택하고 게임에 들어가면, 이 버튼을 눌러 레벨을 올릴 수 있으며 여러분의 진행 상황은 백그라운드에서 비동기적으로 저장됩니다. 이 게임에서는 레벨업을 누를 때마다 저장 함수를 호출하고 있지만, 여러분의 게임은 타이머에 따라 자동으로 저장되거나, 플레이어가 콜라이더 (Collider)에 부딪힐 때, 또는 단순히 레벨을 마쳤을 때 저장되도록 할 수도 있습니다. 설명란에서 프로젝트를 다운로드할 수 있습니다. 제가 작성한 Cloud Save 래퍼만 따로 원하시는 분들을 위해 별도의 링크도 포함해 두었습니다. 만약 그것이 정말 전부라면...

즐겁게 개발하는 것에 관심이 있는
사랑스러운 분들

AI 자동 생성 콘텐츠

본 콘텐츠는 YouTube Tarodev (Unity 팁)의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.

원문 바로가기
0

댓글

0