모각코 [5주차]

Haphael·2023년 2월 6일
0

승리 UI 조건

UI 오브젝트 추가

Hierarchy (오른쪽 클릭) > UI > Text
Canvas > Text (이름변경 "WinUI")
Canvas 게임 세상과 1:1 비율로 대응되게 생성됨

UI 배치하기

Text 클릭 > Scene (2D) > 이동 > 마우스로 배치
Anchor Presets 사용
자주 사용하는 배치 UI를 제공, 이를 선택하여 설정 가능 (Alt키를 누르면 Snapping 옵션이 활성화되어 배치됨)

Anchor Presets 사용하기

  • 내용 입력 및 UI 설정
    Text : "You Win!"
    Font Size : 81
    Paragraph
    Horizontal Overflow : Overflow (글이 글상자를 넘어가면 넘치게 해줌)
    Vertical Overflow : Overflow
    Alignment : 중앙 / 중앙 정렬
    Color : 색상 변경 (초록색)
  • 그림차 추가
    Add Component > Shadow
    보유한 폰트 파일로 변경하고 싶을 경우
    Assets 에 폰트파일 Drag&Drop > 오브젝트 컴포넌트 Font에 Drag&Drop
    UI 숨겨놨다가 게임 승리 시 나타내기
    Inspector > WInUI > (좌측체크박스) 해제
// WinUI 오브젝트를 가져올 변수 선언
// 게임매니저 오브젝트 스크립트 컴포넌트에 추가된 winUI에 WinUI 오브젝트 Drag & Drop으로 넣어줌
public GameObject winUI;

// 게임 승리시 승리 UI 오브젝트인 WinUI 오브젝트 표시
winUI.SetActive(true);

게임 재시작 기능 추가하기

  • 게임 세상(Scene) 최종 출력물에 등록하기
    File > Build Settings
    Scenes In Build에 게임 세상 추가하기 : (Assets) Main 파일
  • 스페이스바를 누르면 게임 재시작이 가능하도록 하기
  • GameManager 스크립트에 로직 코드 작성
 // Scene을 관리할 수 있는 기능들을 사용하기 위해 using 선언
using UnityEngine.SceneManagement;

// Update() 함수에 아래 내용추가
// GetKeyDown : 키보드를 누르는 한 순간만 호출(GetKey는 누르고 있는 동안)
// 스페이스바를 누를 경우 게임 재시작
if(Input.GetKeyDown(KeyCode.Space))
{
    // Scene의 이름이나 순번(Build Settings > Scenes In Build에 추가한)을 넣어주면 해당 Scene으로 점프함
    // 자기 자신의 Scene을 호출하면 게임 재시작
    SceneManager.LoadScene("Main");
}
  • 게임 종료 시 Player 못 움직이게 하기 (Player 스크립트 수정)
// 게임매니저를 가져옴
// Player 컴포넌트 Player 스크립트의 Game Manager 변수에 GameManager 오브젝트 적용 (Drag&Drop)
public GameManager gameManager;

// Update() 함수에 추가
// 게임 종료시 업데이트 함수 종료
if(gameManager.isGameOver == true)
{
    return;
}

배경 음악 추가하기

  • 음악파일 Assets에 추가
    Hierarchy에 빈 오브젝트 생성 및 오디오 컴포넌트 추가
    Create Empty > 이름 변경 "BGM"
    Add Component > Audio Source
    Assets에 추가한 음악파일 AudioClip에 추가 (Drag&Drop)
  • Play On Awake 체크 (게임 시작 시 음악 재생)
  • Loop 체크 (반복 재생)

최종 빌드

File > Build Settings (Scene In Build에 만든 게임 세상(Scene > Main)이 잘 포함되어 있는지 확인)
Platform 지정
Build And Run
프로젝트가 아닌 경로에 파일 저장 (꼬일 수 있음)

0개의 댓글