유니티/UI

UI 응용2 (버튼 클릭시 나머지 버튼 비활성화 시키기)

DOlpa_GB 2024. 2. 7. 02:16

임의로 버튼 3개를 만든다

 

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


public class UIComponent : MonoBehaviour
{
    [SerializeField] private Button btn1;
    [SerializeField] private Button btn2;
    [SerializeField] private Button btn3;

    void Start()
    {
        this.btn1.onClick.AddListener(() =>
        {
            // 2,3번 비활성화
            this.btn2.gameObject.SetActive(false);
            this.btn3.gameObject.SetActive(false);
        });
    }
}

btn1을 누르면 나머지 버튼들을 비활성화로 만드는 스크립트 작성

 

SetActive는 오브젝트의 활성화, 비활성화를 변경해주는 메서드이다

스크립트를 UIComponent에 넣어준뒤 이름에 맞게 btn을 넣어준다

 

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


public class UIComponent : MonoBehaviour
{
    [SerializeField] private Button btn;
    [SerializeField] private Button[] btns;
    void Start()
    {
        this.btn.onClick.AddListener(() =>
        {
            for(int i = 0; i < btns.Length; i++)
            {
                Button btn = btns[i];
                btn.gameObject.SetActive(false);
            }
        });
    }
}

배열을 이용해서도 가능하다

 

설정은 이렇게 바꿔준다

누르는 순간 나머지 둘이 비활성화 되는것을 볼 수 있다

 

궁금한건 위 스크립트를 UIComponent에 넣어도 구현되고,

그냥 btn1에 넣어도 구현이 되는데 둘이 무슨 차이인지는 잘 모르겠다

반응형

'유니티 > UI' 카테고리의 다른 글

정적 스크롤뷰  (0) 2024.02.15
UI 응용 총정리  (0) 2024.02.07
UI 응용1(클릭시 문자열 출력)  (0) 2024.02.07
버튼 만들기  (2) 2024.02.07