! UI는 순서대로 쌓여 화면에 출력됨( Hierachy 순서 중요) !
btnBlue는 Main에서 직접 이벤트를 관리,
btnYellow와 btnGreen은 Button들을 관리하는 UIButtons에서 이벤트를 관리하는 방법으로 코드를 작성하였다.
UIButtons
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
public class UIButtons : MonoBehaviour
{
public enum eBtnTypes
{
Yellow, Green
}
public Button[] arrBtns;
public Button btnBlue;
public System.Action<eBtnTypes> onClick;
private void Start()
{
for(int i = 0; i < arrBtns.Length; i++)
{
this.arrBtns[i].onClick.AddListener(() =>
{
this.onClick((eBtnTypes)i);
});
}
}
}
ButtonSceneMain
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
public class ButtonsSceneMain : MonoBehaviour
{
public UIButtons uiButtons;
void Start()
{
this.uiButtons.onClick = (btnType) =>
{
Debug.Log(btnType);
};
this.uiButtons.btnBlue.onClick.AddListener(() =>
{
Debug.Log("Blue");
});
}
}
하지만 위와 같이 for문의 델리게이트 내의 변수를 불러온 후 출력한 btnType은 0, 1이 아닌 2로 출력되었다.
2023.02.06 - [Unity/수업과제] - [Unity] AddListener와 for문
'Unity > 수업내용' 카테고리의 다른 글
[Unity UI] 2일차 Slider (0) | 2023.02.20 |
---|---|
[Unity UI] 1일차 Menu (0) | 2023.02.06 |
[Unity2D] Shooting Game 구조 만들기 연습 (0) | 2023.02.03 |
[Unity 3D / 유니티 교과서] 7장 예제 Bamsongi (0) | 2023.02.01 |
[Unity 2D / 유니티 교과서] 6장 예제 ClimbCloud (0) | 2023.02.01 |