728x90
반응형
프로젝트탭에 Scripts, Materials, Prefabs 폴더를 만들어 정리해줍니다.
게임이 진행될때 전체 화면이 계속해서 회전되게 만들겠습니다.
Rotator 스크립트를 작성합니다.
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Rotator : MonoBehaviour
{
public float rotationSpeed = 60f;
void Update()
{
transform.Rotate(0f, rotationSpeed*Time.deltaTime, 0f);
}
}
해당 스크립트를 Level에 드롭합니다.
원하는대로 회전하는걸 확인할 수 있습니다.
UI 개체를 만들어줍니다.
Record Text는 Gameover Text에 속하게 만들고 비활성화 시켜둡니다.
이제 GameManager 스크립트를 작성합니다.
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI; //UI 관련 라이브러리
using UnityEngine.SceneManagement; //씬 관련 라이브러리
public class GameManager : MonoBehaviour
{
public GameObject gameoverText; //게임오버 시 활성화할 텍스트 게임 오브젝트
public Text timeText; //생존 시간을 표시할 텍스트 컴포넌트
public Text recordText; //최고 기록을 표시할 텍스트 컴포넌트
private float surviveTime; //생존 시간
private bool isGameover; //게임오버 상태
void Start()
{
//생존 시간과 게임오버 상태 초기화
surviveTime = 0;
isGameover = false;
}
void Update()
{
if(!isGameover)
{
//생존 시간 갱신
surviveTime += Time.deltaTime;
//갱신한 생존 시간을 timeText 텍스트 컴포넌트를 이용해 표시
timeText.text = "Time : " + (int)surviveTime;
}
else
{
//게임오버 상태에서 R을 누른 경우
if(Input.GetKeyDown(KeyCode.R))
{
//SampleScene 씬을 로드
SceneManager.LoadScene("SampleScene");
}
}
}
//현재 게임을 게임오버 상태로 변경하는 메서드
public void EndGame()
{
//현재 상태를 게임오버 상태로 전환
isGameover = true;
//게임오버 텍스트 게임 오브젝트를 활성화
gameoverText.SetActive(true);
//BestTime 키로 저장된 이전까지의 최고 기록 가져오기
float bestTime = PlayerPrefs.GetFloat("BestTime");
//이전까지의 최고 기록보다 현재 생존 시간이 더 크다면
if(surviveTime > bestTime)
{
//최고 기록 값을 현재 생존 시간 값으로 변경
bestTime = surviveTime;
//변경된 최고 기록을 BestTime 키로 저장
PlayerPrefs.SetFloat("BestTime", bestTime);
}
//최고 기록을 recordText 텍스트 컴포넌트를 이용해 표시
recordText.text = "Best Time : " + (int)bestTime;
}
}
그리고 PlayerController 스크립트를 켜서 Die()메서드를 수정합니다.
public void Die()
{
//자신의 게임 오브젝트를 비활성화
gameObject.SetActive(false);
//씬에 존재하는 GameManager 타입의 오브젝트를 찾아서 가져오기
GameManager gameManager = FindObjectOfType<GameManager>();
//가져온 GameManager 오브젝트의 EndGame() 메서드 실행
gameManager.EndGame();
}
Game Manager 오브젝트를 만들고 컴포넌트를 설정해줍니다.
정상적으로 플레이되는것을 확인합니다.
빌드된 게임을 플레이해봅니다.
이것으로 탄막 슈팅 게임 Dodge가 끝났습니다.
728x90
반응형
'유니티 > 닷지(3D 탄막 슈팅 게임)' 카테고리의 다른 글
닷지(4) - 탄알 생성기 제작 (0) | 2021.08.04 |
---|---|
닷지(3) - 탄알 제작 (0) | 2021.07.12 |
닷지(2) - 플레이어 스크립트 생성&입력감지 (0) | 2021.06.23 |
닷지(1) - 씬 구성&카메라 설정&플레이어 제작 (0) | 2021.06.23 |