Jurajkeee
@Jurajkeee
Baby Developer

Почему сменная не получает данные из другого скрипта?

Скрипт должен снимать со счета игрока стоимость скина, но в результате ничего не происходит.
Функция которая должна снимать деньги:
void Update ()
    {
        if (oppAcc == true) { 
             if (playerInfo.gold >= mfb && playerInfo.crystals >= cfb)
             {
            playerInfo.gold = playerInfo.gold - mfb;
            playerInfo.skin = buttonClickedOnObjectForBuy;
            playerInfo.crystals = playerInfo.crystals - cfb;

             }
             if (playerInfo.gold < mfb || playerInfo.crystals < cfb)
             {
            playerInfo.skin = 999;
             }
        }


    }

Игрок:
public class PlayerInfo : MonoBehaviour {
    public int skin;
    public int weapon;
    public int gold ;
    public int crystals ;
    public int swords;

	// Use this for initialization
	void Start () {
	
	}
	
	// Update is called once per frame
	void Update () {
        gold = 10000;
        crystals = 10000;
	}
}
  • Вопрос задан
  • 332 просмотра
Решения вопроса 2
devalone
@devalone
̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻
Когда ты пишешь такой код, где-то в мире умирает котёнок, не будь извергом!
if (oppAcc == true) {
можно просто
if (oppAcc) {
и что такое oopAcc? Что такое mfb, cfb? Пиши нормально.
playerInfo.skin = 999;
Почему скин 999? Что такое 999? id? Почему не enum? Ну ладно, это мелочи. Что этот код по покупке делает в update? Читаем документацию https://docs.unity3d.com/ScriptReference/MonoBehav... update вызывается в каждом кадре, у вас будет покупаться очень много вещей, пока переменная oppAcc будет true. Также что вот этот код делает в update?
void Update () {
        gold = 10000;
        crystals = 10000;
  }

Возможно проблема в этом. А может и ещё где-то.
Ответ написан
kreo_OL
@kreo_OL
Медузко -_-
А где у вас собственно съем денег то?
например
gold-=skin;
Это раз.

Два, у вас в принципе сумма на счету у игрока не может уменьшиться так как вы ее каждый кадр приравниваете к 10000.
Даже если вы вычтите стоимость скина, в следующем кадре у игрока опять будет 10000
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
EreminD
@EreminD
Кое-что умею
что такое
  • oppAcc
  • mfb
  • cfb

?
Где определяется buttonClickedOnObjectForBuy?
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы