와챠의 우당탕탕 코딩 일기장

[Unity] 게임 재시작 & 사운드 추가 본문

코딩 일기장/Unity

[Unity] 게임 재시작 & 사운드 추가

minWachya 2021. 11. 1. 20:16
반응형

목차

1, Retry 버튼 클릭 시 게임 재시작하도록 하기

2, 사운드 추가


1, Retry 버튼 클릭 시 게임 재시작하도록 하기

1-1, GameResult.cs  스크립트 수정(버큰 클릭 시 호출되는 함수 OnRetry() 생성)

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
using UnityEngine.SceneManagement;

// 게임 종료 후 UI들 보이게 하기
// 지금까지의 결과 출력
public class GameResult : MonoBehaviour
{
    public GameObject resultUI;
    public Text resultTime; // 게임 종료에 걸린 시간 텍스트
    public Text baseTime;   // 최고 기록 텍스트

    private int highScore;  // 최고 기록 변수

    // 게임 시작 시 최고 기록 초기화
    void Start()
    {
        // 저장된 최고 기록이 있다면
        if (PlayerPrefs.HasKey("HighScore"))
        {
            // 최고 기록을 저장된 값으로 초기화
            highScore = PlayerPrefs.GetInt("HighScore");
        }
        // 없으면 999로 하기
        else
        {
            highScore = 999;
        }
        
        
    }

    // 게임이 종료됐는지 매 프레임마다 확인
    void Update()
    {
        // 게임이 종료됐으면
        if (Goal.goal == true)
        {
            // Result 안의 UI들 보이게 하기
            resultUI.SetActive(true);
            // 경과 시간 보이기
            // 정수로 변경
            int result = Mathf.FloorToInt(Timer.time);
            resultTime.text = "Result Time : " + result;
            // 최고 기록 보이기
            baseTime.text = "Base Time : " + highScore;

            // 현재 기록이 이전 최고 기록보다 더 짧다면 최고 기록 변경
            if (highScore > result)
            {
                PlayerPrefs.SetInt("HighScore", result);
            }
        }
    }

    // Retry 버튼 클릭 시 호출
    public void OnRetry()
    {
        // 현재 씬 다시 불러오기
        SceneManager.LoadScene(SceneManager.GetActiveScene().name);
    }
}

1-2, 스크립트 연결

 


2, 사운드 추가

2-1, 에셋 스토어에서 "Action RPG Music Free" 검색

> 내 에셋 추가

> 유니티에서 열기

> 패키지 매니저에서 다운로드 클릭

> import

2-2, Stage > Goal > Audio Source 컴포넌트 추가

2-3, 무한 재생 설정 -> Loop 체크

2-4, Goal에 가까이 갈 수록 음악 크게 설정 -> Spatial Blend를 1로 설정

 

반응형
Comments