뒤끝
뒤끝 계정 생성 및 프로젝트 생성에 관한 내용은 따로 작성하지 않는다. 😜
유니티 프로젝트 생성 및 설정
유니티 허브에서 새로운 프로젝트를 생성한 뒤 뒤끝 홈페이지에서 문서 - 뒤끝 SDK를 눌러 최신 버전의 뒤끝 SDK를 다운로드 받는다. 이 후 다운로드한 패키지 파일을 유니티 프로젝트에 임포트 한 후 Unty - The Backend - Edit Setting을 눌러준다. 뒤끝 콘솔에서 생성한 프로젝트에 들어 간 후 인증 정보 탭에 들어가 Client App Id와 Signature Key를 TheBackendSettings 객체 Client App Id와 Signature Key에 넣어준다.
뒤끝 초기화
뒤끝 서버 사용을 위한 BackendManager 스크립트를 생성 후 아래와 같이 적어줍니다.
using UnityEngine;
using BackEnd; // 뒤끝 SDK
public class BackendManager : MonoBehaviour
{
private void Awake()
{
// 뒤끝 서버 초기화
BackendSetup();
}
private void BackendSetup()
{
// 뒤끝 초기화
var bro = Backend.Initialize(true);
// 뒤끝 초기화에 대한 응답값
if (bro.IsSuccess())
{
// 초기화 성공 시 statusCode 204 Success
Debug.Log($"초기화 성공 : {bro}");
}
else
{
// 초기화 실패 시 statusCode 400대 에러 발생
Debug.Log($"초기화 실패 : {bro}");
}
}
}
위와 같이 작성 한 후 빈 오브젝트를 생성한 뒤 이름을 BackendManager로 변경한 후 해당 스크립트를 붙여줍시다. 이 후 게임을 실행하면, 서버 접속에 시도하는데 이 때 성공하면 "초기화 성공 statusCode 204"가 출력되는 것을 볼 수 있습니다. 😎
배경과 로딩 UI
로고 씬 제작을 위한 폰트 사용을 위해 구글에 Notosans를 검색하여 다운받아 NotoSansKr - Bold, Regular를 프로젝트에 넣어준 후, Window - Tmp - FontAssetCreator를 열어 폰트를 제작해줍니다. 이 후 Background와 Slider를 통해 로고 씬을 만들어 줍니다. 만드는 방법은 영상 속에 아주 자세하게 나와있으므로 다루지 않습니다. 🤭
Progress.cs
using System.Collections;
using UnityEngine;
using UnityEngine.UI;
using UnityEngine.Events;
using TMPro;
public class Progress : MonoBehaviour
{
[SerializeField] private Slider sliderProgress;
[SerializeField] private TextMeshProUGUI textProgressData;
[SerializeField] private float progressTime; // 로딩바 재생 시간
public void Play(UnityAction action = null)
{
StartCoroutine(OnProgress(action));
}
private IEnumerator OnProgress(UnityAction action)
{
float current = 0;
float percent = 0;
while (percent < 1)
{
current += Time.deltaTime;
percent = current / progressTime;
// Text 정보 설정
textProgressData.text = $"Now Loading... {sliderProgress.value * 100:F0}%";
// Slider 값 설정
sliderProgress.value = Mathf.Lerp(0, 1, percent);
yield return null;
}
// action이 null이 아니면 action 메소드 실행
action?.Invoke();
}
}
위와 같이 스크립트를 모두 작성한 후 Progress 오브젝트에 작성한 스크립트를 붙여줍니다. 이 후 Progrss 스크립트의 객체들을 각각 다음과 같이 채워줍니다.
LogoScenario.cs
using UnityEngine;
public class LogoScenario : MonoBehaviour
{
[SerializeField] private Progress progress;
[SerializeField] private SceneName nextScene;
private void Awake()
{
SystemSetup();
}
private void SystemSetup()
{
// 활성화되지 않은 상태에서도 게임이 계속 진행
Application.runInBackground = true;
// 해상도 설정 (9:18.5, 1440x2960)
int width = Screen.width;
int height = (int)(Screen.width * 18.5f / 9);
Screen.SetResolution(width, height, true);
// 화면이 꺼지지 않도록 설정
Screen.sleepTimeout = SleepTimeout.NeverSleep;
// 로딩 애니메이션 시작, 재생 완료시 OnAfterProgress 실행
progress.Play(OnAfterProgress);
}
private void OnAfterProgress()
{
Utils.LoadScene(nextScene);
}
}
마찬가지로 LogoScenario 스크립트를 추가하여 위와 같이 작성한 뒤, 유니티에서 빈 오브젝트를 추가하여 스크립트를 붙여줍니다. Progress 변수에 Progress 오브젝트를 등록하여 줍니다. 게임을 실행하면 로딩이 진행되고, 로딩이 완료되면 OnAfterProgress 함수가 실행됩니다.
'공부 > 인프런 - 고박사' 카테고리의 다른 글
[뒤끝 강의] 온라인 게임 개발 #02 - 유저 관리 기능을 이용한 로그인 (1) | 2023.12.04 |
---|---|
[뒤끝 강의] 온라인 게임 개발 #00 - 뒤끝 소개 (0) | 2023.12.04 |
[뒤끝 강의] 온라인 게임 개발 (0) | 2023.12.04 |