임의로 버튼 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에 넣어도 구현이 되는데 둘이 무슨 차이인지는 잘 모르겠다
반응형