SHSA37
@SHSA37
Developer

Как исправить работу в скрипте unity?

Постараюсь описать суть вопроса:
есть скрипт который сохраняет и загружает данные для магазина, и сохраняет и загружает верно, проверил
Но вот в скрипте который обрабатывает отображение нужных кнопок в соответствии с сохранением, почему то отображает верные кнопки через раз??? (прилагаю код)

Пример: куплен товар под кнопкой 1, 2, 4, 5 и в сохранении подгружает также, а SetActive делает только на 1 и 4 кнопки?? никак не соображу почему так, приму любую подсказку по теме

namespace MoreMountains.CorgiEngine
{
	public class BuyInShop : MonoBehaviour
	{
		public string Gun_Name;
		public GameObject checkedButton;
		public GameObject buttonDisableBay;
		public int price;
		[SerializeField]

		void Start()
		{
			foreach (AdventureShop Shop in StoreProgressManager.Instance.ShopGun)
				{
					if (Shop.GunName == Gun_Name)
					{
						if (Shop.BAY == true)
						{
							checkedButton.SetActive(true);
							buttonDisableBay.SetActive(false);
						}
					}
				}
		}

		public virtual void BayShop()
		{
			if (GameManager.Instance.Points >= price)
			{
				GameManager.Instance.SetPoints(GameManager.Instance.Points - price);
				checkedButton.SetActive(true);
				buttonDisableBay.SetActive(false);

				foreach (AdventureShop Shop in StoreProgressManager.Instance.ShopGun)
				{
					if (Shop.GunName == Gun_Name)
					{
						Shop.BAY = true;
					}
				}

			}
		}

	}
}
  • Вопрос задан
  • 48 просмотров
Пригласить эксперта
Ответы на вопрос 1
@Ezekiel4
Охотник на пиратов и сборщик монолитов
Если данные теряются, то проблема может быть:
* в сохранении, которое может как просто не сохранить, так и перезаписать мусорные данные;
* в загрузке, которая может как загрузить не то, так и добавить своих мусорных данных через мутные валидации;
* в интерфейсе доступа, который может иметь некорректные фильтры или вообще работать в другом потоке, из-за чего вы даже сообщение об ошибке не увидите;
* в отображении - всякие Order in Layer у SpriteRenderer, ошибки настройки GridLayoutGroup, отсутствующие ссылки и т.п.

В вашем конкретном случае рекомендую начать с построчной проверки Start - точно ли цикл отрабатывает все элементы, точно ли у всех нужных выполняются нужные условия. Затем проверьте работу GameManager и AdventureShop. В этом сильно помогает режим отладки, который имеется во всех нормальных IDE.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы