Araina’s Blog

Manage scene flow and data: Submission) Data persistence in a new repo 본문

Unity Learn 번역/Pathway: Junior Programmer

Manage scene flow and data: Submission) Data persistence in a new repo

Araina 2022. 1. 18. 19:56

출처

 

Submission: Data persistence in a new repo - Unity Learn

Now that you know how to save data between scenes and between sessions in an application, you’re ready to put those skills to use in a brand new project. This is also a good opportunity to set up a new repo and use version control.

learn.unity.com


 

 

1. 과제가 업데이트되었습니다!

여러분이 못 보신 사이에 과제 내용이 수정된 것을 대비하여, 이번 과제를 제출하시기 전에 아래의 튜토리얼을 완료하셨는지 다시 한번 확인해주세요.

Set up version control

Explore the sample project

Principles of object-oriented programming

Create a scene flow

Implement data persistence between scenes

Implement data persistence between sessions

 


 

2. 미리 보기

이전 튜토리얼에서 여러분은 예제 프로젝트를 통해 두 씬과 세션 사이의 데이터 지속성을 구현하였습니다.


(영상: 링크 참조)

 

Submission: Data persistence in a new repo - Unity Learn

Now that you know how to save data between scenes and between sessions in an application, you’re ready to put those skills to use in a brand new project. This is also a good opportunity to set up a new repo and use version control.

learn.unity.com


이번 과제 챌린지에서는 이 2가지 기술을 새로운 게임 프로젝트에 적용해볼 것입니다. 씬 사이에 사용자 이름을 저장하고 세션 사이에 사용자의 하이 스코어를 저장할 것입니다.


(영상: 링크 참조)

 

Submission: Data persistence in a new repo - Unity Learn

Now that you know how to save data between scenes and between sessions in an application, you’re ready to put those skills to use in a brand new project. This is also a good opportunity to set up a new repo and use version control.

learn.unity.com


여러분이 데이터 지속성 기술에 집중하실 수 있도록, 게임의 기본적인 기능은 구현되어 있지만, 데이저 지속성은 구현되어 있지 않은 간단한 벽돌 깨기 스타일의 게임을 준비했습니다. 프로젝트 파일을 따로 제공해드리긴 했지만, 여러분만의 간단한 게임을 처음부터 직접 만드시는 것을 권장드립니다. 사용자의 점수를 추적하고 이를 표시할 수 있으면 충분합니다.

이번 과제에서는 다음과 같은 작업을 수행하셔야 합니다:

● 새로운 리포지토리(Repository) 생성

● 최초 커밋(Initial commit) 등록

● 버전 관리 솔루션에 프로젝트 임포트(Import) 및 커밋(Commit)

● 씬과 세션 사이의 데이터 지속성 구현

 


 

3. 새로운 리포지토리(Repository) 생성하기

여러분의 프로젝트를 백업하고 버전을 관리하기 위해 새로운 리포지토리(Repository)를 생성해야 합시다. 이렇게 하면 추후에 보다 쉽게 코드를 동료 학습자분들과 공유할 수도 있습니다!

1. 깃허브 데스크톱(GitHub Desktop)을 이용해 여러분의 프로젝트에 대한 새로운 리포지토리를 생성하시고, Git Ignore 드롭다운 메뉴에서 Unity를 선택해주세요. 이는 미리 생성되는 구성요소 파일로써, 자동으로 여러분의 리포지토리에서 불필요한 유니티 관련 파일들을 제외시켜줍니다. 여러분의 리포지토리 이름을 "Data-Persistence-Project"와 같이 지정해주세요.

 

2. 여러분의 컴퓨터에서, 방금 만드신 폴더 위치로 가주세요. 이제 폴더 안에 깃허브가 이 폴더가 리포지토리임을 인식하는데 필요한 .git 이라는 폴더와 무시해야 하는 파일과 파일의 형식에 대한 리스트가 담겨 있는 .gitignore 파일이 들어있을 것입니다. .git 폴더의 배치는 깃허브에게 해당 디렉터리 안에 있는 모든 파일들을 추적해야 한다는 것을 말해주는 역할을 합니다. .git 파일은 여러분의 컴퓨터 설정에 따라 보이지 않을 수 있습니다.

 

참고: GitHub.com에서 직접 리포지토리를 생성하여 해당 리포지토리를 클론(clone)하는 방법도 있지만, 이는 몇 가지 추가적인 절차가 더 필요합니다. 만약 깃허브 또는 버전 관리가 무엇인지에 대해 기억이 나지 않으신다면, 버전 관리 튜토리얼 문서를 다시 참조해주세요.

 


 

4. 프로젝트 실행 및 최초 커밋(Initial Commit) 등록

여러분의 리포지토리에 처음 커밋할 파일들의 묶음은 최초 커밋(Initial Commit)에 포함될 것입니다. 일반적으로 프로젝트 설정을 마친 후에 최초 커밋을 진행하므로 지금 바로 진행해보겠습니다.

1. 프로젝트 압축 폴더를 다운로드하신 뒤, 압축을 해제하시고 Data-Persistence-Starter-Files 폴더를 열어주세요. 폴더 안에는 다음과 같은 폴더들이 들어있을 것입니다:

● Assets

● Packages

● ProjectSettings

2. Ctrl + A (윈도) 또는 Cmd + A (맥)을 눌러 폴더 3개를 모두 선택하신 뒤, 리포지토리 폴더 안의 숨겨진 .git 파일 바로 아래에 복사/붙여넣기 해주세요. 이제 이 리포지토리 폴더를 유니티 프로젝트로 열 준비가 되었습니다.

3. 유니티 허브에서 프로젝트를 실행하시고, Projects 탭으로 가셔서 여러분의 리포지토리 폴더를 추가해주세요. 그런 다음 유니티 에디터에서 프로젝트를 열어주세요.

저희가 제공해드린 프로젝트는 유니티 2020.3 LTS 버전이 필요합니다. 만약 해당 버전의 유니티가 설치되어 있지 않다면, 유니티 허브의 목록 아래에 알맞은 버전의 유니티를 설치하라는 경고 문구가 표시될 것입니다.

4. Project 창에서 Scenes > Main 폴더로 가셔서 Play 버튼을 눌러 게임을 테스트해보세요. 스페이스바(spacebar)를 눌러 공을 쏘고 좌우 화살표 키를 사용해 발판을 조작하세요. 여러분의 점수가 화면 상단에 기록되고 있으나, 아직 베스트 스코어(Best Score) 기능은 동작하지 않음을 기억해주세요.

여러분의 깃허브 데스크톱 창을 보시면 이제  Changes 패널 상에 새로운 파일들의 긴 리스트가 작은 초록색 플러스(+) 아이콘이 각각의 파일들 옆에 붙은 채로 나타났을 것입니다. 이 아이콘은 해당 파일이 새로 추가된 신규 파일임을 나타내 줍니다.

5. 변경 사항 리스트 하단의 Summary 필드에 "initial commit"이라고 입력하신 뒤, Description 부분에 설명을 추가해주세요. (예: "starter breakout game imported") 그런 다음, Commit to main 버튼을 클릭해 변경 사항을 프로젝트의 "main" 브랜치(branch)에 저장해주세요.

6. Publish Repository를 클릭하시고, Keep this code private 체크박스를 선택 해제해주세요. 이는 이번 과제에서 작업하신 여러분의 코드를 다른 사람들과 공유할 수 있도록 해줍니다.

 


 

5. 데이터 지속성 구현하기

이제 이 애플리케이션에서 데이터 지속성 구현 과제를 시작할 준비가 끝났습니다. 여러분이 달성하셔야 하는 핵심 요소들은 다음과 같습니다:

씬 간의 데이터 저장: 하나의 씬에서 저장된 데이터 조각이 다른 씬에서도 저장 및 사용될 것입니다.

세션 간의 데이터 저장: 런타임(Runtime) 도증에 저장된 데이터 조각이 다음번에 애플리케이션이 실행될 때 저장 및 사용될 것입니다.

애플리케이션 내에서 이러한 기능들을 구현할 수 있는 방법으로는 여러 가지가 있지만, 이번 과제에서 해당 기능을 구현할 수 있는 방법을 소개해드리겠습니다:

플레이어  이름 (씬 간의 데이터 저장)

● 유저의 이름을 입력하는 텍스트 입력 필드와 시작 버튼을 포함한 새로운 게임 시작 메뉴 씬을 생성하세요.

● 유저가 시작 버튼을 눌렀을 때, 메인 게임 씬이 로드될 것이며, 유저의 이름을 스코어 옆에 표시할 것입니다.

하이 스코어 (세션 간의 데이터 저장)

● 유저가 게임을 플레이할 때, 현재 하이 스코어가 점수를 기록한 플레이어의 이름과 함께 화면에 표시됩니다.

● 만약 하이 스코어가 갱신되면, 새로운 스코어와 플레이어의 이름이 대신 표시됩니다.

● 하이 스코어는 세션 간에 저장되므로, 플레이어가 애플리케이션을 종료하고 다시 실행해도 하이 스코어 및 플레이어의 이름은 유지될 것입니다.


(영상: 링크 참조)

 

Submission: Data persistence in a new repo - Unity Learn

Now that you know how to save data between scenes and between sessions in an application, you’re ready to put those skills to use in a brand new project. This is also a good opportunity to set up a new repo and use version control.

learn.unity.com


만약 야망이 있으시다면, 더 다양한 데이터 지속성 기능들을 추가할 수도 있습니다. 예를 들어:

● 하이 스코어를 보여주는 하이 스코어 씬을 분리해 제작합니다.

● 하이 스코어를 하나만 표시하는 대신, 여러 개의 하이 스코어를 표시합니다.

● 사용자가 게임 플레이를 구성할 수 있는 설정 씬을 만들고, 세션 간에 해당 정보를 사용합니다.

 


 

6. 프로젝트 등록하기

데이터 지속성 기능을 구현하신 뒤에 여러분의 프로젝트를 제출 및 공유해주세요! 하지만 그전에 플레이 테스트를 철저히 해보시거나, 친구 또는 가족들에게 여러분이 만든 프로젝트의 플레이 테스트를 요청하시는 것이 좋습니다.

성공적으로 과제 제출물에는 다음과 같은 항목들이 포함되어 있어야 합니다:

● 커밋 메시지와 함께 다수의 커밋을 보여주는 프로젝트의 깃허브 리포지토리 주소

● 씬 간의 데이터 지속성을 적용한 특정 기능

● 세션 간의 데이터 지속성을 적용한 특정 기능

여러분의 프로젝트 스크린샷을 찍거나, 실행 과정을 녹화한 영상을 여러분이 만드신 프로젝트 파일과 함께 여기에 포스팅하여 공유해주세요. 다른 크리에이터분들의 과제에 최소한 1개 이상의 댓글을 작성하시는 걸 추천드립니다. 그분들이 성공적으로 이번 과제를 완수하였나요? 여러분은 프로젝트의 어떤 부분이 마음에 드시나요? 그분들이 추가를 고려해볼 수 있는 멋지고 새로운 기능은 무엇일까요?


(파일 업로드: 링크 참조)

 

Submission: Data persistence in a new repo - Unity Learn

Now that you know how to save data between scenes and between sessions in an application, you’re ready to put those skills to use in a brand new project. This is also a good opportunity to set up a new repo and use version control.

learn.unity.com


 


 


수고하셨습니다!


Comments