게임개발 예제모음

현재 선택중인 버튼 확인 본문

유니티 메모장

현재 선택중인 버튼 확인

게임을만들어보자 2025. 6. 5. 20:18

2025.06.04 - [유니티 메모장] - UI만들기 : 하위 메뉴버튼 이동 및 복귀

 

UI만들기 : 하위 메뉴버튼 이동 및 복귀

○ 구현목표메인메뉴에서의 선택으로 하위메뉴 버튼이 나타나 커서가 이동서브메뉴를 닫으면 메인메뉴 위치를 기억하여 선택했던 버튼으로 커서 이동 ○ 구현목표에 맞추어 윈도우 및 버튼 배

capsuleer.tistory.com

○ 상기 UI버튼 만들기에 이어서 버튼을 클릭 했을 때가 아닌 버튼위에 커서가 올라가기만 해도 해당 버튼을 반환

  ※ 위 포스트에서 사용되었던 스크립트 전문은 이번 포스팅에선 전부 생략한다.

 

○ 스크립트에 EventSystem컴포넌트를 캐싱 (하기 스크린샷 확인)

 

  ① EventSystem오브젝트를 스크립트에 접근 가능하도록 변수선언 및 어태치

[SerializeField] GameObject ojEventSystem; //네임스페이스에 GameObject변수 선언

 

  ② EventSystem오브젝트의 EventSystem컴포넌트를 캐싱한다

    [SerializeField] GameObject ojEventSystem;
    EventSystem myEventSystem;   //캐싱을 위한 변수선언

    void Start()
    {
        myEventSystem = ojEventSystem.GetComponent<EventSystem>(); //캐싱
    }

 

 

○ 현재 선택중인 (커서가 올라가있고 클릭은 하지 않은) 버튼의 이름을 반환 : EventSystem.currentSelectedGameObject

void Update()
{
    var currentButtonText = myEventSystem.currentSelectedGameObject; //자료형은 object
    Debug.Log(currentButtonText);
}

  ※ currentSelectedGameObject구문은 자료형으로 object를 반환

  ※ 필요에 따라 ToString()등으로 자료형을 변환하여 활용

 

○ 실행 테스트

 

 

○ 스크립트 전문

using UnityEngine;
using UnityEngine.EventSystems;

public class UICanvas : MonoBehaviour
{
    [SerializeField] GameObject ojEventSystem;
    EventSystem myEventSystem;

    void Start()
    {
        myEventSystem = ojEventSystem.GetComponent<EventSystem>();
    }

    void Update()
    {
        var currentButtonText = myEventSystem.currentSelectedGameObject;
        Debug.Log(currentButtonText);
    }
}