Dúvida sobre o Time.timeScale no Unity para sistema de Pause
Página 1 de 1
Dúvida sobre o Time.timeScale no Unity para sistema de Pause
Olá pessoal. Estou fazendo um sistema de Pause no Unity num projeto 2D. Estou usando o comando Time.timeScale. Porém, o painel de menu fica com os butões travados (o que deve ser o Time.timeScale = 0). Já procurei vários vídeos e a maioria usa o mesmo comando e o painel não trava os butões. Quero saber o que estou fazendo de errado. Seguem meu script abaixo:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
using UnityEngine.SceneManagement;
public class Pause : MonoBehaviour
{
// Start is called before the first frame update
public GameObject TelaPause;
//public GameObject Jogo;
//public Button BotaoResumi, BotaoOpcoes, BotaoVoltarAoMenu;
void Start(){
Time.timeScale = 1;
//BotaoResumi.onClick = new Button.ButtonClickedEvent();
//BotaoResumi.onClick.AddListener(() => ResumirJogo());
TelaPause.SetActive(false);
}
// Update is called once per frame
void Update () {
if (Input.GetKeyDown(KeyCode.P))
{
/*if (Time.scaleTime == 1){
TelaPause.SetActive(true);
//Jogo.SetActive(false);
AudioListener.pause = true;
Time.scaleTime = 0;
}else{
TelaPause.SetActive(false);
//Jogo.SetActive(true);
AudioListener.pause = false;
Time.scaleTime = 0;
}*/
if(Time.timeScale == 1){
TelaPause.SetActive(true);
Time.timeScale = 0;
}else{
TelaPause.SetActive(false);
Time.timeScale = 1;
}
}
}
}
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
using UnityEngine.SceneManagement;
public class Pause : MonoBehaviour
{
// Start is called before the first frame update
public GameObject TelaPause;
//public GameObject Jogo;
//public Button BotaoResumi, BotaoOpcoes, BotaoVoltarAoMenu;
void Start(){
Time.timeScale = 1;
//BotaoResumi.onClick = new Button.ButtonClickedEvent();
//BotaoResumi.onClick.AddListener(() => ResumirJogo());
TelaPause.SetActive(false);
}
// Update is called once per frame
void Update () {
if (Input.GetKeyDown(KeyCode.P))
{
/*if (Time.scaleTime == 1){
TelaPause.SetActive(true);
//Jogo.SetActive(false);
AudioListener.pause = true;
Time.scaleTime = 0;
}else{
TelaPause.SetActive(false);
//Jogo.SetActive(true);
AudioListener.pause = false;
Time.scaleTime = 0;
}*/
if(Time.timeScale == 1){
TelaPause.SetActive(true);
Time.timeScale = 0;
}else{
TelaPause.SetActive(false);
Time.timeScale = 1;
}
}
}
}
Samuquis- Iniciante
- PONTOS : 1759
REPUTAÇÃO : 0
Respeito as regras :
Re: Dúvida sobre o Time.timeScale no Unity para sistema de Pause
Código:
- Código:
using System.Collections;[size=14][/size]
using System.Collections.Generic;[size=14][/size]
using UnityEngine;[size=14][/size]
using UnityEngine.UI;[size=14][/size]
using UnityEngine.SceneManagement;[size=14][/size]
public class Pause : MonoBehaviour[size=14][/size]
{[size=14][/size]
// Start is called before the first frame update[size=14][/size]
public GameObject TelaPause;[size=14][/size]
//public GameObject Jogo;[size=14][/size]
//public Button BotaoResumi, BotaoOpcoes, BotaoVoltarAoMenu;[size=14][/size]
[size=14][/size]
void Start(){[size=14][/size]
Time.timeScale = 1;[size=14][/size]
//BotaoResumi.onClick = new Button.ButtonClickedEvent();[size=14][/size]
//BotaoResumi.onClick.AddListener(() => ResumirJogo());[size=14][/size]
TelaPause.SetActive(false);[size=14][/size]
}[size=14][/size]
[size=14][/size]
// Update is called once per frame[size=14][/size]
void Update () {[size=14][/size]
if (Input.GetKeyDown(KeyCode.P))[size=14][/size]
{[size=14][/size]
/*if (Time.scaleTime == 1){[size=14][/size]
TelaPause.SetActive(true);[size=14][/size]
//Jogo.SetActive(false);[size=14][/size]
AudioListener.pause = true;[size=14][/size]
Time.scaleTime = 0;[size=14][/size]
}else{[size=14][/size]
TelaPause.SetActive(false);[size=14][/size]
//Jogo.SetActive(true);[size=14][/size]
AudioListener.pause = false;[size=14][/size]
Time.scaleTime = 0;[size=14][/size]
}*/[size=14][/size]
[size=14][/size]
if(Time.timeScale == 1){[size=14][/size]
TelaPause.SetActive(true);[size=14][/size]
Time.timeScale = 0;[size=14][/size]
}else{[size=14][/size]
TelaPause.SetActive(false);[size=14][/size]
Time.timeScale = 1;[size=14][/size]
}[size=14][/size]
}[size=14][/size]
}[size=14][/size]
}
Samuquis- Iniciante
- PONTOS : 1759
REPUTAÇÃO : 0
Respeito as regras :
Re: Dúvida sobre o Time.timeScale no Unity para sistema de Pause
Kkakaa, encontrei a solução (é bem bestinha). Somente colocar o painel como último item no canvas. -Dica pra quem tiver o mesmo problema aí e não conseguir resolver.
Samuquis- Iniciante
- PONTOS : 1759
REPUTAÇÃO : 0
Respeito as regras :
Tópicos semelhantes
» Duvida sobre Time.deltaTime
» [Dúvida] ignorar Time.timescale = 0
» Dúvida sobre implementação de sistema de criar/editar mapa unity/unreal
» Duvida sobre blender para unity
» [Duvida] Time.TimeScale em jogo multiplayer
» [Dúvida] ignorar Time.timescale = 0
» Dúvida sobre implementação de sistema de criar/editar mapa unity/unreal
» Duvida sobre blender para unity
» [Duvida] Time.TimeScale em jogo multiplayer
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos