cosmic developer

[Unity 2D] 게임 플레이 중 힌트버튼 클릭하면 힌트 이미지 띄우기 (C#) 본문

Programming Languages/Unity

[Unity 2D] 게임 플레이 중 힌트버튼 클릭하면 힌트 이미지 띄우기 (C#)

ti:bot 2020. 3. 9. 18:38

게임을 만들면서 힌트 버튼이 필요한 경우가 종종 있다. 오늘은 그 힌트를 구현해 볼 것이다. 사실 몇 달 전에 해두고 잊을만한 것들을 지금 쓰고 있는 것이기 때문에 놓치는 부분이 있을 수 있지만 그런 것들은 차차 보완해 나갈 것이다. 어쨌든 힌트 버튼을 클릭하면 해당 이미지를 보여주었다가 사라지도록 구현해보자.


필요한 것은 당연히 힌트 버튼힌트에 해당하는 이미지이다. 나머지는 이제 굳이 말하지 않겠다. 혹시 잘 모르겠다면 이전 포스팅을 참고하자.

2020/03/09 - [Programming/Unity] - [Unity 2D] 게임 시작 전 카운트다운 화면 만들기




1) 필요한 이미지 Project 영역에 추가하기

힌트 버튼 이미지


힌트로 보여줄 이미지


필요한 이미지 소스를 프로젝트 영역에 드래그 해서 추가하고 이름은 쓰기 편한대로 설정한다.




2) 작업 중인 Scene의 Hierarchy 창에 필요한 소스 추가

먼저 나는 다른 작업들도 함께 하고 있었기 때문에 게임의 전체적인 틀을 잡는 UI를 한꺼번에 묶어둔 상태였다. 어쨌든 1)에서 가져온 이미지들을 작업할 곳에 드래그해준다. 그리고 중요한 것은 EventSystem를 추가해야 한다. 이벤트 시스템이 대해서는 하나의 주제로 해서 글을 써보도록 하겠다.


< EventSystem 추가하기 >

hierarchy 영역에서 우클릭 → UI → Event System





3) 스크립트 작성

자 준비가 완료되었다면 스크립트를 추가하고 코드를 아래와 같이 작성한다.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;   // 버튼 사용하므로.
 
public class GameHint : MonoBehaviour
{
    public GameObject Hint; // 힌트 이미지
    public Button btnHint;  // 힌트 보기 버튼
 
    // Start is called before the first frame update
    void Start()
    {
        // 시작할 때에는 힌트 보이지 않게 설정
        Hint.SetActive(false);
 
        // 힌트 버튼 클릭했을 때 ShowHint 함수 실행
        btnHint.onClick.AddListener(ShowHint);
    }
 
    void ShowHint()
    {
        // 힌트가 보이게 한다
        Hint.SetActive(true);
        // 2초 뒤에 힌트가 사라지게 한다. (Invoke의 첫 번째 인자는 함수명)
        Invoke("HideHint"2);
    }
 
    // 함수명이 필요하기 때문에 HideHint라는 함수를 하나 만들어둔다.
    void HideHint()
    {
        Hint.SetActive(false);
    }
}
 
cs




4) 스크립트 적용 및 컴포넌트 설정

< 이벤트 시스템 > - 기존 그대로


< Canvas > - 카메라 설정을 꼭 해주어야 한다.


< 힌트 버튼 >


< 힌트 이미지 >




5) 실행하기