Как можно в паматр метода впихнуть любой класс C# Unity
Класс ещё не созда но хочу в самом методе инициализирвать сам класс
public GameObject item;
public List<NewShipShop> newShipShops = new List<NewShipShop>();
public TMP_Dropdown ListSelect;
private void Start()
{
Buy(NewShipShop);
}
public void Buy(System.Object SA)//Вот здесь я хочу использовать класс у которого пока не существует
{
// List<NewShipShop> newShipShops = new List<NewShipShop>();
object[] Res = Resources.LoadAll(ListSelect.captionText.text + "/");
for (int i = 0; i < Res.Length; i++)
{
newShipShops.Add((NewShipShop)Res[i]);
}
for (int i = 0; i < newShipShops.Count; i++)
{
GameObject Cell = Instantiate(item);
Cell.transform.FindChild("Name").GetComponent<TextMeshProUGUI>().text = newShipShops[i].NameShip;
Cell.transform.SetParent(transform);
Cell.name = i.ToString();
int Index = int.Parse(Cell.transform.name);
Cell.GetComponent<Button>().onClick.AddListener(() => MenuItem.instance.BuyNewShip(newShipShops[Index], transform.parent.gameObject));
Cell.transform.FindChild("Heallog").GetChild(0).GetComponent<TextMeshProUGUI>().text = newShipShops[i].Heal.ToString();
Cell.transform.FindChild("Cargo").GetChild(0).GetComponent<TextMeshProUGUI>().text = newShipShops[i].Cargo.ToString();
Cell.transform.FindChild("Mining").GetChild(0).GetComponent<TextMeshProUGUI>().text = newShipShops[i].MiningSecStart + "s";
}
}
Ответы (1 шт):
Автор решения: Mr.AntonDer
→ Ссылка
Unity не поддерживает создание объектов класса через new, для создания шаблона класса, вам необходимо создать такую переменную:
public Class1 class;
Где Class1 - имя вашего класса
Затем необходимо заполнить эту переменную в эдиторе, перетащив туда объект, на котором весит скрипт с этим классом