728x90
UIMain
using System;
using System.Collections;
using System.Collections.Generic;
using System.Text;
using UnityEngine;
using UnityEngine.UI;
public class Test01UIMain : MonoBehaviour
{
public enum eButtonType
{
Blue, Red, Green, Purple
}
//[SerializeField]
//private Button btnBlue;
//[SerializeField]
//private Button btnRed;
//[SerializeField]
//private Button btnGreen;
//[SerializeField]
//private Button btnPurple;
[SerializeField]
private Button[] btns;
public System.Action<eButtonType> onButtonClicked;
public void Init()
{
for(int i = 0; i < btns.Length; i++)
{
Button btn = this.btns[i];
Debug.Log(btn.name);
btn.onClick.AddListener(() =>
{
Debug.Log(i);
});
}
//this.btnBlue.onClick.AddListener(() => {
// Debug.Log("blue 버튼 클릭 됨!");
// this.onButtonClicked(eButtonType.Blue);
//});
//this.btnRed.onClick.AddListener(() =>
//{
// Debug.Log("red 버튼 클릭 됨!");
// this.onButtonClicked(eButtonType.Red);
//});
//this.btnGreen.onClick.AddListener(() =>
//{
// Debug.Log("green 버튼 클릭 됨!");
// this.onButtonClicked(eButtonType.Green);
//});
//this.btnPurple.onClick.AddListener(() =>
//{
// Debug.Log("purple 버튼 클릭 됨!");
// this.onButtonClicked(eButtonType.Purple);
//});
}
}
SceneMain
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Test01Main : MonoBehaviour
{
[SerializeField]
private Test01UIMain uiMain;
void Start()
{
//uiMain에 입력된 버튼 타입을 가져와서 출력
this.uiMain.onButtonClicked = (btnType) =>
{
Debug.Log(btnType);
};
this.uiMain.Init();
}
}
버튼을 눌러도 해당 i가 나오는게 아니라 자꾸 배열의 길이 4가 찍힘
'KDT > 유니티 심화' 카테고리의 다른 글
23/09/05 LearnUGUI (InputField) (0) | 2023.09.05 |
---|---|
23/09/04 LearnUGUI 종합(Button,On/Off,Tab,Slider) (0) | 2023.09.04 |
23/09/04 LearnUGUI 버튼 (0) | 2023.09.04 |
23/09/03 [주말] HeroShooter 총알 발사 (1) | 2023.09.03 |
23/08/31 Input System 연습 (0) | 2023.08.31 |