UI제작과 게임의 규칙 관리, 게임 오버 상태 표현

바닥 회전

바닥을 회전 시켜서 게임 난이도를 올려보자

  1. Rotator 스크립트 생성 →Level에 드래그 드롭
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Rotator : MonoBehaviour
{
    public float rotationSpeed = 60f;

    void Update()
    {   //chekd 
        transform.Rotate(0f, rotationSpeed *Time.deltaTime, 0f);        
    }
}

바닥 회전은 게임이 시작될 때 한번 실행되는 것이 아닌, 매 프레임 마다 회전해야함으로 Update()메소드에 작성한다. 여기서 중요한 부분은 매 프레임에 맞추어서 회전한다는 것이다.

컴퓨터의 성능에 따라 화면 갱신 주기는 다르다. 그렇기에 Update()가 1초에 몇번 실행되는 알 수 가 없다. 이 문제를 해결하지 않는다면 PC게이머들이 ‘프레임 제한’을 해제했을 때, 큰 문제가 발생한다.

결국 Update()메소드에서 초당 이동 속도나 회전 속도 등 시간과 관련된 수치를 다룰 때 시간 간격을 고려해야한다.

60프레임 고정이라면 1초 에 1m를 이동할 코드를 작성할 때, Update()메소드 한번 당 1/60m를 이동하도록 해야하는 것이다. 즉 시간 간격을 쪼개서 누적해야한다.

이를 바탕으로 rotatiomSpeed( 초당 회전 각도)에 Time.deltaTime를 곱연산 하여 해결할 수 있다. Time.deltaTimed의 값은 프레임의 주기이자 초당 프레임에 역수를 취한 값이다.

게임 UI제작

UI란 사용자 인터페이스(User Interface)의 약자로, 사용자와 컴퓨터 혹은 기기 사이에서 정보나 명령어를 주고 받는 매개체를 의미한다. 게임에서는 주로 화면에 표시되는 버튼, 아이콘, 텍스트 등을 일컫는다.

이 게임은 생존시간, 게임 오버, 최고 기록을 표현하는 UI를 만들 것이다

유니티는 UI를 게임 속 오브젝트로 인식하여, 일반 게임 오브젝트와 다루는 방법이 동일하다.

  1. 생존시간 텍스트 제작
  1. 텍스트 배치
  1. 텍스트 꾸미기 : 텍스트 내용과 폰트 색깔 변경 UI 게임 오브젝트 Inspector창에서 수정 그림자 추가 : Add Component → UI → Effects → Shadow