Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Проблемы с кодом

Данил Миньёнов Ученик (165), на голосовании 7 месяцев назад
Всем привет сделал код что бы добовлять очивки в игру всё работает но не добовляются очивки на экран вот код -


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

public class AuhMenu : MonoBehaviour
{
public int money;
public int total_money;
[SerializeField] Button firstAch;
[SerializeField] bool isFirst;

public string[] arrayTitles;
public Sprite[] arraySprites;
public GameObject button;
public GameObject content;

private List<GameObject> list = new List<GameObject>();
private VerticalLayoutGroup _group;

void Start()
{
money = PlayerPrefs.GetInt("money");
total_money = PlayerPrefs.GetInt("total_money");
isFirst = PlayerPrefs.GetInt("isFirst") == 1 ? true : false;

RectTransform rectT = content.GetComponent<RectTransform>();
rectT.transform.localPosition = new Vector3(0.0f, 0.0f, 0.0f);
_group = GetComponent<VerticalLayoutGroup>();
setAchievs();

if (isFirst)
{
StartCoroutine(IdleFarm());
}
}

private void RemovedList()
{
foreach (var elem in list)
{
Destroy(elem);
}
list.Clear();

}


void setAchievs()
{
RectTransform rectT = content.GetComponent<RectTransform>();
rectT.transform.localPosition = new Vector3(0.0f, 0.0f, 0.0f);
RemovedList();
if (arrayTitles.Length > 0)
{
var pr1 = Instantiate(button, transform);
var h = pr1.GetComponent<RectTransform>().rect.height;
var tr = GetComponent<RectTransform>();
tr.sizeDelta = new Vector2(tr.rect.width, h * arrayTitles.Length);
Destroy(pr1);
for (var i = 0; i < arrayTitles.Length; i++)
{
var pr = Instantiate(button, transform);
pr.GetComponentInChildren<Text>().text = arrayTitles[i];
pr.GetComponentsInChildren<Image>()[1].sprite = arraySprites[i];
var i1 = i;
pr.GetComponent<Button>().onClick.AddListener(() => GetAchievement(i1));
list.Add(pr);

}
}
}

void GetAchievement(int id)
{
switch (id)
{
case 0:
Debug.Log(id);
break;
case 1:
Debug.Log(id);
money += 1000;
PlayerPrefs.SetInt("money", money);
break;
}
}


IEnumerator IdleFarm()
{
yield return new WaitForSeconds(1);
money++;
Debug.Log(money);
PlayerPrefs.SetInt("money", money);
StartCoroutine(IdleFarm());
}

public void ToMenu() => SceneManager.LoadScene(0);

void Update()
{

}
}
Дополнен 8 месяцев назад
Делал по видео от атлас дев вот видео - https://www.youtube.com/watch?v=c1WGrDtW3QI&list=PL3V36b1NObb_mrh2qMzcBY1j-17FBgW9L&index=5
Голосование за лучший ответ
Похожие вопросы