[RESOLVIDO] Problema com sistema de controle de volume.
2 participantes
SchultzGames :: UNITY 3D :: Resolvidos
Página 1 de 1
[RESOLVIDO] Problema com sistema de controle de volume.
Bom dia pessoal,
Esse é meu primeiro post nesse forum e meu nome é Klaus.
Segui o tutorial do: GamesIndie - Tutoriais de Unity & Programação ( link do vídeo no youtube: https://www.youtube.com/watch?v=U69KCEXNygc&t=248s ), para fazer um controle de volume, porém quando faço a build do modelo os valores do som começam por padrão como 0 "o que faz o jogo começar sem nenhum som ..."
Como faço para iniciar os valores do volume como 1 e assim o jogo começaria com som e depois fica a critério do jogador diminuir os valores.
Segue o código de como ficou no meu projeto:
Muito obrigado pessoal.
Esse é meu primeiro post nesse forum e meu nome é Klaus.
Segui o tutorial do: GamesIndie - Tutoriais de Unity & Programação ( link do vídeo no youtube: https://www.youtube.com/watch?v=U69KCEXNygc&t=248s ), para fazer um controle de volume, porém quando faço a build do modelo os valores do som começam por padrão como 0 "o que faz o jogo começar sem nenhum som ..."
Como faço para iniciar os valores do volume como 1 e assim o jogo começaria com som e depois fica a critério do jogador diminuir os valores.
Segue o código de como ficou no meu projeto:
- Código:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
public class Controledevolume : MonoBehaviour
{
public float audioGeral, audioMusica, audioFX;
public Slider sliderAudioGeral, sliderAudioMusica, sliderAudioFX;
void Start()
{
sliderAudioGeral.value = PlayerPrefs.GetFloat("prefAudioGeral");
sliderAudioMusica.value = PlayerPrefs.GetFloat("prefaudioMusica");
sliderAudioFX.value = PlayerPrefs.GetFloat("prefaudioFX");
}
public void volumeAudioGeral(float volume)
{
audioGeral = volume;
AudioListener.volume = audioGeral;
PlayerPrefs.SetFloat("prefAudioGeral", audioGeral);
}
public void volumeAudioMusica(float volume)
{
audioMusica = volume;
GameObject[] volumeMusica = GameObject.FindGameObjectsWithTag("Musicas");
for (int i=0; i<volumeMusica.Length; i++)
{
volumeMusica[i].GetComponent<AudioSource>().volume = audioMusica;
}
PlayerPrefs.SetFloat("prefaudioMusica", audioMusica);
}
public void volumeAudioFX(float volume)
{
audioFX = volume;
GameObject[] volumeFX = GameObject.FindGameObjectsWithTag("AudioFX");
for (int i = 0; i < volumeFX.Length; i++)
{
volumeFX[i].GetComponent<AudioSource>().volume = audioFX;
}
PlayerPrefs.SetFloat("prefaudioFX", audioFX);
}
}
Muito obrigado pessoal.
kraulim- Iniciante
- PONTOS : 2064
REPUTAÇÃO : 1
Respeito as regras :
Re: [RESOLVIDO] Problema com sistema de controle de volume.
Desculpa a todos mas não achei a função para editar o tópico então a continuação dele coloco aqui:
Segue um print da parte do jogo que mostra os valores zerados quando inicia a primeira vez após criar o build.
Segue um print da parte do jogo que mostra os valores zerados quando inicia a primeira vez após criar o build.
kraulim- Iniciante
- PONTOS : 2064
REPUTAÇÃO : 1
Respeito as regras :
Re: [RESOLVIDO] Problema com sistema de controle de volume.
eu sei que é meio obvio, mas já tentou dar o valor 1 as variaveis de audio.
public float audioGeral = 1, audioMusica = 1, audioFX = 1;
public float audioGeral = 1, audioMusica = 1, audioFX = 1;
Magnatah- Instrutor
- PONTOS : 3548
REPUTAÇÃO : 209
Idade : 24
Áreas de atuação : Dєรєиvσlvєdσя Wєb(Fяσит-єиd), Blєиdєя, υиiтy, C#, ρнρ є Jαvαรcяiρт.
Respeito as regras :
Re: [RESOLVIDO] Problema com sistema de controle de volume.
Magnatah escreveu:eu sei que é meio obvio, mas já tentou dar o valor 1 as variaveis de audio.
public float audioGeral = 1, audioMusica = 1, audioFX = 1;
Magnatah,
Obrigado pela resposta, mas não deu certo ele fica com o valor 0 quando inicia, e a musica não toca... dependendo do usuário mudar os valores ...
também está dando a seguinte mensagem de erro no console (não sei se isso influencia em algo), porém mesmo com essa mensagem o jogo roda:
- Código:
NullReferenceException: Object reference not set to an instance of an object
Controledevolume.Start () (at Assets/Scenes/01-Cena-MenuInicial/Scripts_MenuInicial/Controledevolume.cs:20)
kraulim- Iniciante
- PONTOS : 2064
REPUTAÇÃO : 1
Respeito as regras :
Re: [RESOLVIDO] Problema com sistema de controle de volume.
Voce Esta Tentando Pegar Um Valor De Chave Que Não Existe, Tenta Isso:
- Código:
void Start()
{
//Verifica Se a Chave Existe.
if (PlayerPrefs.HasKey("prefAudioGeral"))
{
sliderAudioGeral.value = PlayerPrefs.GetFloat("prefAudioGeral");
}
else //Se Não Existir...
{
volumeAudioGeral(1);
}
if (PlayerPrefs.HasKey("prefaudioMusica"))
{
sliderAudioMusica.value = PlayerPrefs.GetFloat("prefaudioMusica");
}
else
{
volumeAudioMusica(1);
}
if (PlayerPrefs.HasKey("prefaudioFX"))
{
sliderAudioFX.value = PlayerPrefs.GetFloat("prefaudioFX");
}
else
{
volumeAudioFX(1);
}
}
Última edição por Magnatah em Seg Abr 15, 2019 6:09 pm, editado 2 vez(es) (Motivo da edição : PS: Normalmente o "Console" Mostra os Erros, Sempre Preste Atenção Nele Quando For Testar O Código.)
Magnatah- Instrutor
- PONTOS : 3548
REPUTAÇÃO : 209
Idade : 24
Áreas de atuação : Dєรєиvσlvєdσя Wєb(Fяσит-єиd), Blєиdєя, υиiтy, C#, ρнρ є Jαvαรcяiρт.
Respeito as regras :
Re: [RESOLVIDO] Problema com sistema de controle de volume.
Magnatah escreveu:Voce Esta Tentando Pegar Um Valor De Chave Que Não Existe, Tenta Isso:
- Código:
void Start()
{
//Verifica Se a Chave Existe.
if (PlayerPrefs.HasKey("prefAudioGeral"))
{
sliderAudioGeral.value = PlayerPrefs.GetFloat("prefAudioGeral");
}
else //Se Não Existir...
{
volumeAudioGeral(1);
}
if (PlayerPrefs.HasKey("prefaudioMusica"))
{
sliderAudioMusica.value = PlayerPrefs.GetFloat("prefaudioMusica");
}
else
{
volumeAudioMusica(1);
}
if (PlayerPrefs.HasKey("prefaudioFX"))
{
sliderAudioFX.value = PlayerPrefs.GetFloat("prefaudioFX");
}
else
{
volumeAudioFX(1);
}
}
Magnatah,
Deu certo cara! muito obrigado :D
Você é um gênio!!
Agora o som começa com o valor de 1, graças a Deus!
A única coisa que eu gostaria de ajustar para finalizar isso com chave de ouro é fazer desaparecer essa mensagem de erro:
- Código:
NullReferenceException: Object reference not set to an instance of an object
Controledevolume.Start () (at Assets/Scenes/01-Cena-MenuInicial/Scripts_MenuInicial/Controledevolume.cs:20)
kraulim- Iniciante
- PONTOS : 2064
REPUTAÇÃO : 1
Respeito as regras :
Re: [RESOLVIDO] Problema com sistema de controle de volume.
Encontrei o objeto que estava com o erro e já arrumei :D
Muito obrigado.
Como faço para fechar o tópico ?
Dúvida solucionada.
Muito obrigado.
Como faço para fechar o tópico ?
Dúvida solucionada.
kraulim- Iniciante
- PONTOS : 2064
REPUTAÇÃO : 1
Respeito as regras :
Tópicos semelhantes
» [RESOLVIDO] Como ajustar o volume em todo o jogo
» [RESOLVIDO] Como acessar e mudar o volume via script
» ajuda com o sistema de drag and drop com controle no invetario
» [RESOLVIDO]Ativar o Character controle faz o boneco ignorar gravidade
» [RESOLVIDO] Ajuda com controle mobile
» [RESOLVIDO] Como acessar e mudar o volume via script
» ajuda com o sistema de drag and drop com controle no invetario
» [RESOLVIDO]Ativar o Character controle faz o boneco ignorar gravidade
» [RESOLVIDO] Ajuda com controle mobile
SchultzGames :: UNITY 3D :: Resolvidos
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos