🎮 Unity

[UNITY] 딜레이 주기(원하는 시간 뒤 이미지 출력)

dlalwl_jpg 2023. 2. 27. 21:36

성공 또는 실패 이미지를 출력하고 띄울 이미지를 원하는 시간 뒤에 나오도록 만들어보자.


failure를 복붙한 뒤 rabbit으로 이름과 이미지를 변경해준다. 원하는 크기와 위치를 조정해주고 체크를 해제해 비활성화 해준다.

딜레이를 주는 방법으로 Invoke함수를 사용하였다. 원하는 함수를 원하는 시간 뒤에 실행하도록 하는 함수이다. Invoke("함수이름", 초시간) 과 같이 작성해준다.

EventManager 스크립트의 코드를 아래와 같이 작성해준다.

 

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class EventManager : MonoBehaviour
{
    private int randomNum;
    public GameObject Success; //성공 이미지
    public GameObject Failure; //실패 이미지
    public GameObject Rabbit; //토끼 이미지
    private bool success_state; //성공이미지 활성화.비활성화 설정
    private bool failure_state; //실패이미지 활성화.비활성화 설정
    private bool rabbit_state; //토끼이미지 활성화.비활성화 설정

    //랜덤 숫자 생성
    void Start()
    {
        randomNum = Random.Range(0, 12);
        Debug.Log(randomNum);
        //성공.실패 이미지 비활성화
        success_state = false;
        failure_state = false;
        //토끼 이미지 활성화
        rabbit_state = true;
        Success.SetActive(success_state);
        Failure.SetActive(failure_state);
        Rabbit.SetActive(rabbit_state);
    }

    //짝수 버튼 클릭 시
    public void EvenButtonClick()
    {
        if (randomNum % 2 == 0)
        {
            success_state = true;
            failure_state = false;
        }

        else
        {
            success_state = false;
            failure_state = true;
        }

        //성공.실패 이미지 출력
        rabbit_state = false;
        Rabbit.SetActive(rabbit_state);
        Success.SetActive(success_state);
        Failure.SetActive(failure_state);
        //콘솔 결과 확인
        Debug.Log("success_state: " + success_state + " / failure_state: " + failure_state);
        //랜덤 숫자 재생성 및 토끼 이미지 출력
        Invoke("Start", 3);
    }

    //홀수 버튼 클릭 시
    public void OddButtonClick()
    {
        if (randomNum % 2 != 0)
        {
            success_state = true;
            failure_state = false;
        }

        else
        {
            success_state = false;
            failure_state = true;
        }

        //성공.실패 이미지 출력
        rabbit_state = false;
        Rabbit.SetActive(rabbit_state);
        Success.SetActive(success_state);
        Failure.SetActive(failure_state);
        //콘솔 결과 확인
        Debug.Log("success_state: " + success_state + " / failure_state: " + failure_state);
        //랜덤 숫자 재생성 및 토끼 이미지 출력
        Invoke("Start", 3);
    }
}

-- 코드 설명 --

게임 시작할 때 토끼가 이미지를 출력되도록 true 값으로 활성화를 시킨다. 그리고 랜덤 숫자에 맞게 버튼을 클릭하면 클릭한 버튼 결과에 따라 성공/실패 이미지를 출력하고 3초 뒤 랜덤 숫자 재생성, 성공/실패 이미지 비활성화, 토끼이미지 출력을 하는 Start 함수를 실행시킨다.


그리고 EventSystem의 인스펙터의 Rabbit에 하이어라키에 있는 rabbit을 드래그 해주면 완성이다.