기존에 있는 에셋을 다운받아
가이드라인으로 잡고 명암을 줄이고
그 에셋을 찾아 UI를 본뜨는 작업을 하였는데
그것을 하기 전에 제일 기초이자 중요한 GameObject.onClick.AddListener()를 다루려 한다.
Button1을 클릭하면 콘솔에 찍힌다.

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
public class Main : MonoBehaviour
{
[SerializeField] private Button btn;
void Start()
{
btn.onClick.AddListener(() =>
{
Debug.Log("button clicked!");
});
}
};
Button1을 클릭하면 2, 3번이 사라진다.

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
public class Main : MonoBehaviour
{
[SerializeField] private Button btn1;
[SerializeField] private Button btn2;
[SerializeField] private Button btn3;
void Start()
{
btn1.onClick.AddListener(() => {
this.btn2.gameObject.SetActive(false);
this.btn3.gameObject.SetActive(false);
});
}
}
Button1을 클릭하면 2, 3이 사라지는데
Button2, Butto3을 배열(btns)로 만들어서 할당하였다.

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
public class Main : MonoBehaviour
{
[SerializeField] private Button btn1;
[SerializeField] private Button[] btns;
void Start()
{
btn1.onClick.AddListener(() => {
for (int i = 0; i < this.btns.Length; i++)
{
Button btn = btns[i];
btn.gameObject.SetActive(false);
}
});
}
}
Button1, Button2를 btns(배열)에 할당하였고
Button3을 누를시 배열이 사라지고 Button4를 누를시 배열이 다시 생기게 작성


using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
public class Main : MonoBehaviour
{
[SerializeField] private Button btn3;
[SerializeField] private Button btn4;
[SerializeField] private Button[] btns; //btn1, btn2
void Start()
{
btn3.onClick.AddListener(() =>
{
Debug.Log("버튼3 눌렸습니다.");
for (int i = 0; i < this.btns.Length; i++)
{
Button btn = btns[i];
btn.gameObject.SetActive(false);
}
});
btn4.onClick.AddListener(() =>
{
Debug.Log("버튼4 눌렸습니다.");
for (int i = 0; i < this.btns.Length; i++)
{
Button btn = btns[i];
btn.gameObject.SetActive(true);
}
});
}
}
'산대특 > 게임 알고리즘' 카테고리의 다른 글
AppleCatch (0) | 2024.02.06 |
---|---|
동기와 비동기 (1) | 2024.02.05 |
직렬화와 역직렬화 (0) | 2024.02.05 |
디자인 패턴과 싱글톤 패턴 (0) | 2024.02.05 |
Process 와 Thread 그리고 Thread 와 Coroutine (1) | 2024.02.04 |