1. 상위 클래스에서 관리하는 방식

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

public class ButtonSceneMain : MonoBehaviour
{
    public UIButtons uiButtons;

    void Start()
    {
        this.uiButtons.onClick = ((btnType) =>
        {
            Debug.Log(btnType);
        });
    }
}
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;

public class UIButtons : MonoBehaviour
{
    public enum eBtnTypes
    {
        Yellow,
        Green,
        Blue,
    }

    public Button[] arrBtns;
    public System.Action<eBtnTypes> onClick;

    private void Start()
    {
        for (int i = 0; i < arrBtns.Length; i++)
        {
            int idx = i;
            this.arrBtns[idx].onClick.AddListener(() => {
                this.onClick((eBtnTypes)idx);
            });
        }
    }
}



2. 하위 클래스에서 관리하는 방식

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

public class ButtonSceneMain : MonoBehaviour
{
    public UIButtons uiButtons;    

    private void Start()
    {
        
    }
}
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;

public class UIButtons : MonoBehaviour
{
    public ButtonSceneMain buttonSceneMain;
    public Button yellowBtn;

    public void Start()
    {
        this.yellowBtn.onClick.AddListener(() =>
        {
            Debug.Log("Yellow");
        });
    }
}

'C# > 수업 내용' 카테고리의 다른 글

Unity) [유니티 UI] 월드 - 캔버스 좌표 연결  (0) 2023.02.08
230207  (0) 2023.02.07
230203  (0) 2023.02.03
Vertical2DShooting  (0) 2023.02.03
230202  (0) 2023.02.02

+ Recent posts