Como faço para usar o menu de pause em outras scenas (fazes) sem ser em uma especifica.
Como faço para usar o menu de pause em outras scenas (fazes) sem ser em uma especifica.
Boa tarde, Renan!
Use DontDestroyOnLoad(gameObject)
no script do menu de pause para mantê-lo em todas as cenas.
Só cuide pra não duplicar ele ao trocar de fase.
private void OpenClosePauseMenuPerformed(InputAction.CallbackContext obj)
{
if (SceneManager.GetActiveScene().name != "Gameplay") return;
OnMenuOpenClose?.Invoke();
}
Boa trade Patrick. Na ativação do menu. O nome da cena tem que ser "Gameplay", teria que ficar trocando manualmente a cena não teria um jeito de deixar automático.
Renam, bom dia! Acho que você quer que o seu menu de pause funcione em todas as cenas sem precisar verificar manualmente o nome da cena, faça o seguinte:
Remova a verificação do nome da cena no script do menu (isso permite que ele funcione em qualquer cena)
Use o comando DontDestroyOnLoad
no objeto do menu para manter ele ativo entre as trocas de cena, mas adicione uma verificação para evitar que ele seja duplicado acidentalmente quando voltar para cenas anteriores.
Se precisar limitar o pause apenas para cenas de jogo (excluindo menus ou telas), em vez de verificar o nome da cena, verifique aí se existe um objeto com a tag "Player" na cena atual, assim você evita atualizar manualmente os nomes das cenas permitidas.
CÓDIGOS:
private void OpenClosePauseMenuPerformed(InputAction.CallbackContext obj)
{
OnMenuOpenClose?.Invoke(); // >> Ativa em qualquer cena <<
}
void Awake()
{
if (FindObjectsOfType<SeuScriptDePause>().Length > 1) Destroy(gameObject);
else DontDestroyOnLoad(gameObject);
}
Obrigado Patrick