Привет всем! У меня вопрос хочу при создании массива кнопок поставить свой лиснер метод со своим аргументом как это делается?? как только не пытался Вот код
Код
using UnityEngine;
using UnityEngine.UI;
public class AllFromTheEntity : EntityPanel
{
private Entity entityGO;
delegate void butDelegate(byte num);
butDelegate[] butDel = new butDelegate[10];
public override void SpawnAll()
{
entityGO = EnvokeObject.GetComponent<Entity>();
if (entityGO.ImproveToPref.Count > 1)
{
{
foreach (Transform child in GridGenerator.transform)
{
Destroy(child.gameObject);
}
byte i = 0;
foreach (GameObject b in entityGO.ImproveToPref) /// вызываем
{
GameObject clone = Instantiate(BuildingButPref, transform.position, transform.rotation);
clone.transform.SetParent(GridGenerator.transform);
clone.GetComponent<Image>().sprite = BuildingInShopPrefs[i].GetComponent<Entity>().spriteU;
Debug.Log("i++" + i);
// butDel[i] = NumTransformane;
// clone.GetComponent<Button>().onClick.AddListener( delegate { butDel[i]; } );
clone.GetComponent<Button>().onClick.AddListener(() => NumTransformane(i));
i++;
}
byte i = 0;
foreach (GameObject b in entityGO.skill) /// вызываем
{
GameObject clone = Instantiate(BuildingButPref, transform.position, transform.rotation);
clone.transform.SetParent(GridGenerator.transform);
// butDel[i] = NumSkill;
// clone.GetComponent<Button>().onClick.AddListener( delegate { butDel[i]; } );
clone.GetComponent<Image>().sprite = entityGO.skill[i].GetComponent<Entity>().spriteU;
Debug.Log("i++" + i);
clone.GetComponent<Button>().onClick.AddListener(() => NumSkill(i));
i++;
}
}
}
}
private void GoTransformane(byte num)
{
Debug.Log("GoTransformane" + num);
}
public void NumSkill(byte num)
{
Debug.Log("NumSkill" + num);
}
}