Canvas(UI_Button) 아래에 Button과 Text 오브젝트를 생성한다.
UI_Button 스크립트를 만들고 아래와 같이 코드를 작성해준다.
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class UI_Button : MonoBehaviour
{
public void OnButtonClicked() {
Debug.Log("버튼 클릭");
}
}
이제 버튼 속성에서 코드와 버튼을 연결해준다.
❗ 하지만 프로젝트가 커질 경우 이렇게 연결하는 것보다 코드를 이용하는 것이 좋다❗
이제 실행하여 버튼을 누르면
제대로 연결된 것을 확인할 수 있다.
❗ 하지만 버튼을 눌렀을 때 이전에 마우스로 캐릭터를 이동하도록 만든 코드 때문에
캐릭터까지 같이 움직이는 상황이 발생했다. ❗
InputManager.cs 파일 OnUpdate()에 아래 코드를 추가해준다.
using UnityEngine.EventSystems;
public class InputManager
{
public void OnUpdate()
{
if (EventSystem.current.IsPointerOverGameObject())
return;
}
이제 버튼을 누를 때마다 점수가 +1 되는 코드를 작성해보자.
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
public class UI_Button : MonoBehaviour
{
[SerializeField]
Text _text;
int _score = 0;
public void OnButtonClicked() {
_score++;
_text.text = $"점수 : {_score}";
}
}
글 잘 봤습니다, 감사합니다.