반응형
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
public class ItemBoxManager : MonoBehaviour
{
public MainMoneySystem mainSystem;
public GameObject itemBox;
public ItemsMaster master;
void Start()
{
master = GameObject.FindWithTag("ItemsMaster").GetComponent<ItemsMaster>();
ItemSetting();
}
public void ItemSetting()
{
for(int i = 0; i < mainSystem.Items.Count; i++)
{
itemBox = Instantiate(Resources.Load("ItemBox") as GameObject);
itemBox.GetComponent<ItemBox>().name = mainSystem.Items[i].name;
itemBox.GetComponent<ItemBox>().comment = mainSystem.Items[i].comment;
itemBox.GetComponent<ItemBox>().price = mainSystem.Items[i].price;
itemBox.GetComponent<ItemBox>().img = mainSystem.Items[i].img;
int temp = i;
itemBox.transform.GetChild(0).GetComponent<Button>().onClick.AddListener(delegate { master.SetId(mainSystem.Items[temp].id); });
itemBox.transform.GetChild(0).GetComponent<Button>().onClick.AddListener(delegate { master.BuyingItem(); });
itemBox.GetComponent<ItemBox>().UpdateItem();
itemBox.transform.SetParent(transform);
}
}
}
프리팹을 이용하여 버튼을 불러오고, 거기에 해당하는 온클릭 이벤트를 직접 부여하는 방법을 찾고 있었다.
버튼의 컴포넌트에 접속하여 onClick.AddListener()를 이용하면 되고, 안쪽에서 delegate를 사용하여 적용할 이벤트를 작성해준다.
처음에 반복문을 이용하여 i값을 사용하려고 했을때는 자꾸 없다는 에러가 떴었는데, 따로 변수를 선언하여 i값을 넣어준 뒤에 불러와 해결하였음.
반응형
'개발일지(Unity)' 카테고리의 다른 글
21.03.17 자 대족장 사장님 개발일지 (0) | 2021.03.17 |
---|---|
21.03.10. 자 대족장 사장님 개발일지 (0) | 2021.03.10 |
유니티 Android SDK is outdated 문제 (0) | 2021.03.08 |
21.03.08. 자 대족장 사장님 개발일지 (0) | 2021.03.08 |
프로젝트명 '대족장 사장님' 개발중 (0) | 2021.03.07 |
댓글