디스크 골프 [#11] - 타이틀씬 만들기
프리스비 운동R&D를 하면서 동시에 게임의 타이틀 화면을 만들기로 하였다. 타이틀씬은 보통 타이틀과 배경으로 이루어져 있는데 배경은 실제 인게임의 화면을 사용하고 타이틀이나 배경을 클릭하면 로비씬으로 전환되도록 구성해볼 예정이다.
타이틀은 일단 나중에 만들기로 하고 배경신을 어떻게 구성할지 생각해보았다. 몇몇 게임에서 인게임화면을 보여줄때 맵을 탐방하듯이 카메라가 움직이는 타이틀 화면이 있는데 예전에 지오메트리대쉬 프로젝트를 진행하면서 시네머신으로 그것과 비슷한 장면을 구현할 수 있었던것 같았다.
그래서 시네머신을 사용해서 타이틀 화면을 구성해보기로 하였다.
🛤Unity Cinemachine기능을 사용해 트랙을 따라 움직이는 오브젝트를 만들어보자 : Cinemachine Dolly Cart
오브젝트가 정해진 트랙을 따라 움직일 수 있도록 구현해보자
velog.io
시네머신의 돌리트랙 기능을 이용해서 배경화면을 구현하기로 했다. 구현에는 위 사이트를 참고했다.
먼저 하이어라키씬에서 우클릭을 하여 Dolly Camera with Track을 생성하였다.
그리고 생성한 돌리카메라에 시네머신 돌리 카트 스크립트를 추가해주었다.
한번 실행해보았다.
카메라는 정상적으로 이동하였지만 현재 카메라가 메인카메라로 설정되있어서 실제 게임신에서 돌리카메라를 따라가지 않았다.
그래서 돌리트랙의 코스를 늘려주고
빈 오브젝트를 만들어서 이름을 DollyCart로 한다음 버추얼 카메라에 붙어있던 돌리카트 스크립트를 제거하고 돌리카트에 붙여주었다.
그리고 버추얼 카메라가 돌리카트를 바라보게 한 뒤 플레이를 해보았다.
Follow와 Look At을 돌리카트로 설정했음에도 불구하고 버추얼카메라가 움직이지 않았다. 그래서 그냥 버추얼 카메라의 바디를 Transposer로 바꾼다음 다시 실행해보았다.
그리고 간단하게 타이틀을 추가해주었다.
원래는 일러스트레이터를 이욯해서 타이틀을 만드려 했는데 일단 임시로 텍스트를 넣어주었다.
그리고 그 위엔 버튼을 만들고 알파값을 1로 한다음 화면을 클릭했을때 로비씬으로 넘어갈 수 있도록 만들었다.
그리고 App씬을 만들고 Camera와 Light를 떼버린 뒤 App오브젝트를 추가해주었다.
App씬에서는 씬의 전환을 관리하는 역할을 맡을 예정이다.
그리고 타이틀씬에는 TitleMain오브젝트를 추가해주었다. TitleMain에서는 오브젝트풀링(예정)과 로비씬으로의 전환을 가능하도록 만들 예정이다.
이제 App스크립트를 작성하고 App에서 Title씬으로 전환이 잘 되는지 실험해보도록 하겠다.
씬을 전환할때는 Build Settings에 전환할 씬이 들어있어야 한다.
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.SceneManagement;
public class App : MonoBehaviour
{
private void Awake()
{
DontDestroyOnLoad(this.gameObject);
}
private void Start()
{
AsyncOperation oper = SceneManager.LoadSceneAsync("TitleScene");
oper.completed += OnLoadCompleteTitleScene;
}
private void OnLoadCompleteTitleScene(AsyncOperation obj)
{
Debug.Log("Title씬 로드 완료");
TitleMain titleMain = GameObject.FindObjectOfType<TitleMain>();
Debug.LogFormat("titleMain: {0}", titleMain);
}
}
App씬에서 Title씬으로의 전환이 성공적으로 되었다! 씬의 전환을 관리해야할 App오브젝트도 잘 살아있는 것을 볼 수 있다.
이제 타이틀씬에서 화면을 클릭하면 (VR에선 트리거를 당기면) Title씬에서 Lobby씬으로 전환되도록 해보자 마찬가지로 씬의 전환은 App에서 관리하고 대리자를 사용해서 Title씬에서 버튼을 클릭하면 화면이 전환되도록 구현할 생각이다.
타이틀도 작업해서 넣어주었다.