Hi guys! I'm working at a clicker game for android. I added a piece of code and when I'm entering playmode and click an upgrade button, entire unity freeze and I need to close it!
,using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI;
public class Buy : MonoBehaviour {
public Button CPU;
public Button CPUC;
public Button GPU;
public Button GPUC;
public Button RAM;
public Button RAMC;
public Button PSU;
public Button PSUC;
public Button FAN;
public Button FANC;
public GameObject Error;
public int CPUPRICE = 200;
public int GPUPRICE = 300;
public int RAMPRICE = 100;
public int PSUPRICE = 100;
public int FANPRICE = 50;
public int CPUMaxUpgrade = 5;
public int GPUMaxUpgrade = 5;
public int RAMMaxUpgrade = 5;
public int PSUMaxUpgrade = 5;
public int FANMaxUpgrade = 5;
public int CPUUpgrade = 1;
public int GPUUpgrade = 1;
public int RAMUpgrade = 1;
public int PSUUpgrade = 1;
public int FANUpgrade = 1;
public void BuyCPU(){
BitcoinGlobal.BitcoinCount -= CPUPRICE;
CPUPRICE = CPUPRICE + 300;
if (CPUUpgrade == CPUMaxUpgrade) {
CPU.interactable = false;
CPUC.interactable = false;
} else
++CPUUpgrade;
if (BitcoinGlobal.BitcoinCount <= CPUPRICE) {
Error.GetComponent<Text> ().text = "You don't have " + CPUPRICE + " for buying this upgrade";
//this is the code that is freezing unity
while (BitcoinGlobal.BitcoinCount <= CPUPRICE) {
CPU.interactable = false;
CPUC.interactable = false;
}
}
}
public void BuyGPU(){
BitcoinGlobal.BitcoinCount -= GPUPRICE;
GPUPRICE = GPUPRICE + 400;
if (GPUUpgrade == GPUMaxUpgrade) {
GPU.interactable = false;
GPUC.interactable = false;
} else
++GPUUpgrade;
if (BitcoinGlobal.BitcoinCount <= GPUPRICE) {
Error.GetComponent<Text> ().text = "You don't have " + GPUPRICE + " for buying this upgrade";
//this is the code that is freezing unity
while (BitcoinGlobal.BitcoinCount <= GPUPRICE) {
GPU.interactable = false;
GPUC.interactable = false;
}
}
}
public void BuyRAM(){
BitcoinGlobal.BitcoinCount -= RAMPRICE;
RAMPRICE = RAMPRICE + 200;
if (RAMUpgrade == RAMMaxUpgrade) {
RAM.interactable = false;
RAMC.interactable = false;
} else
++RAMUpgrade;
if (BitcoinGlobal.BitcoinCount <= RAMPRICE) {
Error.GetComponent<Text> ().text = "You don't have " + RAMPRICE + " for buying this upgrade";
//this is the code that is freezing unity
while (BitcoinGlobal.BitcoinCount <= RAMPRICE) {
RAM.interactable = false;
RAMC.interactable = false;
}
}
}
public void BuyPSU(){
BitcoinGlobal.BitcoinCount -= PSUPRICE;
PSUPRICE = PSUPRICE + 200;
if (PSUUpgrade == PSUMaxUpgrade) {
PSU.interactable = false;
PSUC.interactable = false;
} else
++PSUUpgrade;
if (BitcoinGlobal.BitcoinCount <= PSUPRICE) {
Error.GetComponent<Text> ().text = "You don't have " + PSUPRICE + " for buying this upgrade";
//this is the code that is freezing unity
while (BitcoinGlobal.BitcoinCount <= PSUPRICE) {
PSU.interactable = false;
PSUC.interactable = false;
}
}
}
public void BuyFAN(){
BitcoinGlobal.BitcoinCount -= FANPRICE;
FANPRICE = FANPRICE + 100;
if (FANUpgrade == FANMaxUpgrade) {
FAN.interactable = false;
FANC.interactable = false;
} else
++FANUpgrade;
if (BitcoinGlobal.BitcoinCount <= FANPRICE) {
Error.GetComponent<Text> ().text = "You don't have " + FANPRICE + " for buying this upgrade";
//this is the code that is freezing unity
while (BitcoinGlobal.BitcoinCount <= FANPRICE) {
FAN.interactable = false;
FANC.interactable = false;
}
}
}
}
Answer by Getsumi3 · Oct 04, 2019 at 11:03 AM
Well. I presume that it is freezing because you are starting a while loop and this loop never ends.
Just change your while
statement to an if
statement like this:
if(BitcoinGlobal.BitcoinCount <= FANPRICE) {
FAN.interactable = false;
FANC.interactable = false;
}
Your answer
Follow this Question
Related Questions
Whole computer tanks while starting Unity games. 0 Answers
Hundreds off errors n console upon starting Unity 2018.3.9f1 related to "has no meta file" 0 Answers
Massive (>1sec) lag spikes in game, within 10 seconds of starting 1 Answer
Unity freezes after editing code (Visual Studio) 0 Answers
Unity is freezing when I change my script, what can I do? [SOLVED] 1 Answer