- Home /
Question by
GentleRaptor · Jul 03, 2015 at 08:53 AM ·
c#uitags
Activate Void update if with UI Button
As the title said i want to activate a void update if with a UI button.
public class PauseMenuC : MonoBehaviour {
public GameObject PauseUI1;
public GameObject PauseUI2;
public GameObject MoveButtonUp;
public GameObject MoveButtonDown;
public GameObject MoveButtonLeft;
public GameObject MoveButtonRight;
public GameObject NormalShot;
public GameObject TrippleShot;
public GameObject Bessie;
public GameObject ShieldActivate;
public bool paused = false;
void Update () {
if (Input.GetKeyDown("p") && paused == false)
{
paused = true;
Time.timeScale = 0;
PauseUI1.SetActive(true);
PauseUI2.SetActive(true);
MoveButtonUp.SetActive(false);
MoveButtonDown.SetActive(false);
MoveButtonLeft.SetActive(false);
MoveButtonRight.SetActive(false);
NormalShot.SetActive(false);
TrippleShot.SetActive(false);
Bessie.SetActive(false);
ShieldActivate.SetActive(false);
}
else if (Input.GetKeyDown("p") && paused == true)
{
paused = false;
Time.timeScale = 1;
PauseUI1.SetActive(false);
PauseUI2.SetActive(false);
MoveButtonUp.SetActive(true);
MoveButtonDown.SetActive(true);
MoveButtonLeft.SetActive(true);
MoveButtonRight.SetActive(true);
NormalShot.SetActive(true);
TrippleShot.SetActive(true);
Bessie.SetActive(true);
ShieldActivate.SetActive(true);
}
}
}
Comment
Update is called every frame by the system, if you want to use it for an "OnClick" event you should rename it.
public bool paused = false;
or maybe you need something function like:
public void PlayPause(){
Time.timeScale = paused ? 0 : 1;
PauseUI1.SetActive(paused);
PauseUI2.SetActive(paused);
$$anonymous$$oveButtonUp.SetActive(!paused);
$$anonymous$$oveButtonDown.SetActive(!paused);
$$anonymous$$oveButtonLeft.SetActive(!paused);
$$anonymous$$oveButtonRight.SetActive(!paused);
NormalShot.SetActive(!paused);
TrippleShot.SetActive(!paused);
Bessie.SetActive(!paused);
ShieldActivate.SetActive(!paused);
paused=!paused;
}
Answer by $$anonymous$$ · Jul 03, 2015 at 12:21 PM
You can turn features on and off in the Update method by controlling them with booleans, this is what I'd do:
bool paused;
void Update()
{
if (Input.GetKeyDown("P"))
{
paused = !paused;
PauseMethod();
}
}
void PauseMethod()
{
float timeScale = 1;
if (paused)
timeScale = 0;
Time.timeScale = timeScale;
PauseUI1.SetActive(paused);
PauseUI2.SetActive(paused);
MoveButtonUp.SetActive(!paused);
MoveButtonDown.SetActive(!paused);
MoveButtonLeft.SetActive(!paused);
MoveButtonRight.SetActive(!paused);
NormalShot.SetActive(!paused);
TrippleShot.SetActive(!paused);
Bessie.SetActive(!paused);
ShieldActivate.SetActive(!paused);
}
Your answer
Follow this Question
Related Questions
Score text is not updating on collision 1 Answer
Multiple Cars not working 1 Answer
Distribute terrain in zones 3 Answers
Setting negative value for rectTransform sizedelta !!! 0 Answers