В сцене есть Scrolling Menu которое создает префабы с содержимым Sprite и добавлена кнопка Select и Buy которые активируются в зависимости от текущего выбора на экране в списке scrolling menu. Когда активна кнопка Buy, то используется SetActive(true) чтобы показать цену предмета в игре в виде текста на кнопке. Пытался достать таким способом повесив скрипт на MainCamera (знаю что он кривой):
using UnityEngine;
using System.Collections;
using UnityEngine.UI;
public class MenuBtn : MonoBehaviour
{
public int coins;
public int PanID;
public int SpinNum;
public GameObject ScrollingPanel;
public int spinNum;
public GameObject priceInCoins;
public GameObject PriceinCoinsT;
public string[] PlayButtonTexts;
public Text PlayBtnT;
public Text coinsT;
void Start()
{
PriceSpin();
coins = PlayerPrefs.GetInt("coins", 0);
}
void Update()
{
PanID = ScrollingPanel.GetComponent<SnapScrolling>().selectedPanID;
coinsT.text = coins.ToString();
ChangeSelector();
}
public void ChangeSelector()
{
if(PanID == 0)
{
SpinNum = 0;
priceInCoins.SetActive(false);
PlayBtnT.text = PlayButtonTexts[0];
}
if (PanID == 1)
{
SpinNum = 1;
priceInCoins.SetActive(true);
PlayBtnT.text = PlayButtonTexts[1];
}
if (PanID == 2)
{
SpinNum = 2;
priceInCoins.SetActive(true);
PlayBtnT.text = PlayButtonTexts[1];
}
if (PanID == 3)
{
SpinNum = 3;
priceInCoins.SetActive(true);
PlayBtnT.text = PlayButtonTexts[1];
}
if (PanID == 4)
{
SpinNum = 4;
priceInCoins.SetActive(true);
PlayBtnT.text = PlayButtonTexts[1];
}
if (PanID == 5)
{
SpinNum = 5;
priceInCoins.SetActive(true);
PlayBtnT.text = PlayButtonTexts[1];
}
if (PanID == 6)
{
SpinNum = 6;
priceInCoins.SetActive(true);
PlayBtnT.text = PlayButtonTexts[1];
}
if (PanID == 7)
{
SpinNum = 7;
priceInCoins.SetActive(true);
PlayBtnT.text = PlayButtonTexts[1];
}
if (PanID == 8)
{
SpinNum = 8;
priceInCoins.SetActive(true);
PlayBtnT.text = PlayButtonTexts[1];
}
}
public void PriceSpin()
{
if(SpinNum == 1)
{
PriceinCoinsT.GetComponent<Text>().text = "300";
}
if (SpinNum == 2)
{
PriceinCoinsT.GetComponent<Text>().text = "500";
}
if (SpinNum == 3)
{
PriceinCoinsT.GetComponent<Text>().text = "1000";
}
if (SpinNum == 4)
{
PriceinCoinsT.GetComponent<Text>().text = "1500";
}
if (SpinNum == 5)
{
PriceinCoinsT.GetComponent<Text>().text = "3000";
}
if (SpinNum == 6)
{
PriceinCoinsT.GetComponent<Text>().text = "6000";
}
if (SpinNum == 7)
{
PriceinCoinsT.GetComponent<Text>().text = "10000";
}
if (SpinNum == 8)
{
PriceinCoinsT.GetComponent<Text>().text = "20000";
}
}
}
Пытаюсь сделать так чтобы значением selectedPanId из другого класса показывать и не показывать цену и кнопку buy/selected, но цена не изменяется. Так вот как заставить цену меняться в зависимости от выбора в scrolling menu?
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости