-
UI 응용2 (버튼 클릭시 나머지 버튼 비활성화 시키기)유니티/UI 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에 넣어도 구현이 되는데 둘이 무슨 차이인지는 잘 모르겠다