[RESOLVIDO] Como ajustar o volume em todo o jogo
+2
NKKF
Samuelsk
6 participantes
SchultzGames :: UNITY 3D :: Resolvidos
Página 1 de 1
[RESOLVIDO] Como ajustar o volume em todo o jogo
Então galera eu estou com um pequeno problema .-.
Criei um menu inicial, e um menu pause..mas
assim nesse menu coloquei um botão Slide para ajudar o áudio da cena..
Mas assim, no caso pelo oq eu pesquisei o AudioListener faz com que você
ajuste o volume de toda uma cena..mas o problema e que eu não sei como ajustar
para que ele vincule-se ao botão Slide :/
e tbm..que ao alterar o Slide em uma cena ao mudar para outra cena o valor de volume permaneça o msm
Criei um menu inicial, e um menu pause..mas
assim nesse menu coloquei um botão Slide para ajudar o áudio da cena..
Mas assim, no caso pelo oq eu pesquisei o AudioListener faz com que você
ajuste o volume de toda uma cena..mas o problema e que eu não sei como ajustar
para que ele vincule-se ao botão Slide :/
e tbm..que ao alterar o Slide em uma cena ao mudar para outra cena o valor de volume permaneça o msm
Última edição por dstaroski em Sex Fev 23, 2018 10:32 am, editado 1 vez(es) (Motivo da edição : Resolvido)
Samuelsk- Membro
- PONTOS : 2653
REPUTAÇÃO : 17
Idade : 25
Respeito as regras :
Re: [RESOLVIDO] Como ajustar o volume em todo o jogo
Boa tarde amigo. Tente fazer assim:
Referências:
https://docs.unity3d.com/ScriptReference/AudioSource-volume.html
https://docs.unity3d.com/ScriptReference/UI.Slider.html
- Código:
public AudioSource audios[];
public Slider seuSlider;
void Update(){
foreach(AudioSource i in audios){
i.volume = seuSlider.value;
}
}
Referências:
https://docs.unity3d.com/ScriptReference/AudioSource-volume.html
https://docs.unity3d.com/ScriptReference/UI.Slider.html
NKKF- ProgramadorMaster
- PONTOS : 4818
REPUTAÇÃO : 574
Idade : 20
Áreas de atuação : Desenvolvedor na Unity, NodeJS, React, ReactJS, React Native, MongoDB e Firebase.
Respeito as regras :
Re: [RESOLVIDO] Como ajustar o volume em todo o jogo
Erro...Souris escreveu:Boa tarde amigo. Tente fazer assim:NÃO SE ESQUEÇA DE IMPORTAR A UNITYENGINE.UI;
- Código:
public AudioSource audios[];
public Slider seuSlider;
void Update(){
foreach(AudioSource i in audios){
i.volume = seuSlider.value;
}
}
Referências:
https://docs.unity3d.com/ScriptReference/AudioSource-volume.html
https://docs.unity3d.com/ScriptReference/UI.Slider.html
- Código:
Assets/#Scripts/wteste3.cs(14,17): error CS1579: foreach statement cannot operate on variables of type `UnityEngine.AudioSource' because it does not contain a definition for `GetEnumerator' or is not accessible
Samuelsk- Membro
- PONTOS : 2653
REPUTAÇÃO : 17
Idade : 25
Respeito as regras :
Re: [RESOLVIDO] Como ajustar o volume em todo o jogo
Lol, desculpa, é um erro simples de array's.
Coloque assim:
Peço desculpas .
Coloque assim:
- Código:
public AudioSource[] audios;
Peço desculpas .
NKKF- ProgramadorMaster
- PONTOS : 4818
REPUTAÇÃO : 574
Idade : 20
Áreas de atuação : Desenvolvedor na Unity, NodeJS, React, ReactJS, React Native, MongoDB e Firebase.
Respeito as regras :
Re: [RESOLVIDO] Como ajustar o volume em todo o jogo
Se você quer ajustar o volume do AudioListener, recomendo utilizar isso
- Código:
AudioListener.volume = 0.5f;
Re: [RESOLVIDO] Como ajustar o volume em todo o jogo
Souris escreveu:Lol, desculpa, é um erro simples de array's.
Coloque assim:
- Código:
public AudioSource[] audios;
Peço desculpas .
Mas com que faz para transferir o msm valor que eu alterar para a próxima cena ?? ou vice-versa ?
Samuelsk- Membro
- PONTOS : 2653
REPUTAÇÃO : 17
Idade : 25
Respeito as regras :
Re: [RESOLVIDO] Como ajustar o volume em todo o jogo
Você pode adicionar um script que irá dar um get component no audio source e configurar ele. Daí voce adicionar esse script em todos objetos que tem AudioSource em todas as cenas!
Re: [RESOLVIDO] Como ajustar o volume em todo o jogo
Nuss, isso iria dar muuito trabalho :affraid:. Acho melhor usar uma array mesmo e usar o:
E colocar esse dont destroy no Slider também para te ajudar
- Código:
DontDestroyOnLoad(gameObject);
E colocar esse dont destroy no Slider também para te ajudar
NKKF- ProgramadorMaster
- PONTOS : 4818
REPUTAÇÃO : 574
Idade : 20
Áreas de atuação : Desenvolvedor na Unity, NodeJS, React, ReactJS, React Native, MongoDB e Firebase.
Respeito as regras :
Re: [RESOLVIDO] Como ajustar o volume em todo o jogo
Acho que não daria. Considerando que o jogo dele não tenha muitas cenas, em cada cena só pode ter 1 audiolistener, então se ele tiver umas 5 cenas, tudo que ele precisa fazer é adicionar o mesmo script em cada 1 dos audio listener (que seriam 5) e então quando o jogo iniciar aquele script faria toda a magia
Re: [RESOLVIDO] Como ajustar o volume em todo o jogo
e como eu vinculo ele ao Button slide ?marcos4503 escreveu:Se você quer ajustar o volume do AudioListener, recomendo utilizar isso
- Código:
AudioListener.volume = 0.5f;
Samuelsk- Membro
- PONTOS : 2653
REPUTAÇÃO : 17
Idade : 25
Respeito as regras :
Re: [RESOLVIDO] Como ajustar o volume em todo o jogo
Faz assim ó
Arruma um jeito de salvar suas configurações num gameobject que nunca é destruido. Aí, você vai criar uma variavel static que armazena o volume que o jogador escolheu. Bom. Você vai criar um novo script e pode apagar a void Update dele. Deixa so a void Start.
Dentro da void Start você coloca isso
Deve ser uma variavel do tipo float e só pode conter numero de 0 a 1.
Feito isso você só precis adicionar esse script a sua camera que contem o audio listener. Quando rodar o jogo, logo no inicio ele ja vai pegar o audiolistener e configura-lo!
Arruma um jeito de salvar suas configurações num gameobject que nunca é destruido. Aí, você vai criar uma variavel static que armazena o volume que o jogador escolheu. Bom. Você vai criar um novo script e pode apagar a void Update dele. Deixa so a void Start.
Dentro da void Start você coloca isso
- Código:
void Start(){
GetComponent<AudioListener>().volume = nomeDoScriptQueContemAVariavelDeVolume.Volume;
}
Deve ser uma variavel do tipo float e só pode conter numero de 0 a 1.
Feito isso você só precis adicionar esse script a sua camera que contem o audio listener. Quando rodar o jogo, logo no inicio ele ja vai pegar o audiolistener e configura-lo!
Re: [RESOLVIDO] Como ajustar o volume em todo o jogo
Hm.. Agora eu entendi, você quer mudar o valor do Audiolistener.. Realmente isto seria mais fácil do que mudar de todos os áudios..
^ Acho que assim funcionaria..
(Não se esqueça de importar a UI, anexar o Slider e deixar este script dentro de um Áudio Listener (Provavelmente será a câmera))
- Código:
public Slider slider;
void Update(){
GetComponent<AudioListener>().volume = slider.value;
}
^ Acho que assim funcionaria..
(Não se esqueça de importar a UI, anexar o Slider e deixar este script dentro de um Áudio Listener (Provavelmente será a câmera))
NKKF- ProgramadorMaster
- PONTOS : 4818
REPUTAÇÃO : 574
Idade : 20
Áreas de atuação : Desenvolvedor na Unity, NodeJS, React, ReactJS, React Native, MongoDB e Firebase.
Respeito as regras :
Re: [RESOLVIDO] Como ajustar o volume em todo o jogo
Mano eu tenho o seguinte Scriptmarcos4503 escreveu:Faz assim ó
Arruma um jeito de salvar suas configurações num gameobject que nunca é destruido. Aí, você vai criar uma variavel static que armazena o volume que o jogador escolheu. Bom. Você vai criar um novo script e pode apagar a void Update dele. Deixa so a void Start.
Dentro da void Start você coloca isso
- Código:
void Start(){
GetComponent<AudioListener>().volume = nomeDoScriptQueContemAVariavelDeVolume.Volume;
}
Deve ser uma variavel do tipo float e só pode conter numero de 0 a 1.
Feito isso você só precis adicionar esse script a sua camera que contem o audio listener. Quando rodar o jogo, logo no inicio ele ja vai pegar o audiolistener e configura-lo!
mas..ele não funca..
tipo eu ultizo o slide..e msm assim o audio da musica permanece o msm
- Código:
using UnityEngine;
using System.Collections;
using UnityEngine.UI;
using UnityEngine.SceneManagement;
using System.Collections.Generic;
using System.Linq;
public class wteste2 : MonoBehaviour
{
public Slider BarraVolume;
public AudioSource[] Audios;
private float VOLUME;
private string nomeDaCena;
void Awake(){
DontDestroyOnLoad (transform.gameObject);
}
void Start () {
//
nomeDaCena = SceneManager.GetActiveScene ().name;
Cursor.visible = true;
Time.timeScale = 1;
//
BarraVolume.minValue = 0;
BarraVolume.maxValue = 1;
//=============== SAVES===========//
if (PlayerPrefs.HasKey ("VOLUME")) {
VOLUME = PlayerPrefs.GetFloat ("VOLUME");
BarraVolume.value = VOLUME;
} else {
PlayerPrefs.SetFloat ("VOLUME", 1);
BarraVolume.value = 1;
}
// =========SETAR BOTOES==========//
BotaoSalvarPref.onClick = new Button.ButtonClickedEvent ();
BotaoSalvarPref.onClick.AddListener (() => SalvarPreferencias ());
}
private void SalvarPreferencias(){
PlayerPrefs.SetFloat ("VOLUME", BarraVolume.value);
AplicarPreferencias ();
}
private void AplicarPreferencias(){
VOLUME = PlayerPrefs.GetFloat ("VOLUME");
}
void Update(){
if (SceneManager.GetActiveScene ().name != nomeDaCena) {
AudioListener.volume = VOLUME;
Destroy (gameObject);
}
}
}
Samuelsk- Membro
- PONTOS : 2653
REPUTAÇÃO : 17
Idade : 25
Respeito as regras :
Re: [RESOLVIDO] Como ajustar o volume em todo o jogo
Mano eu tenho o seguinte Scriptmarcos4503 escreveu:Faz assim ó
Arruma um jeito de salvar suas configurações num gameobject que nunca é destruido. Aí, você vai criar uma variavel static que armazena o volume que o jogador escolheu. Bom. Você vai criar um novo script e pode apagar a void Update dele. Deixa so a void Start.
Dentro da void Start você coloca isso
- Código:
void Start(){
GetComponent<AudioListener>().volume = nomeDoScriptQueContemAVariavelDeVolume.Volume;
}
Deve ser uma variavel do tipo float e só pode conter numero de 0 a 1.
Feito isso você só precis adicionar esse script a sua camera que contem o audio listener. Quando rodar o jogo, logo no inicio ele ja vai pegar o audiolistener e configura-lo!
mas..ele não funca..
tipo eu ultizo o slide..e msm assim o audio da musica permanece o msm
- Script:
- Código:
using UnityEngine;
using System.Collections;
using UnityEngine.UI;
using UnityEngine.SceneManagement;
using System.Collections.Generic;
using System.Linq;
public class wteste2 : MonoBehaviour
{
public Slider BarraVolume;
public AudioSource[] Audios;
private float VOLUME;
private string nomeDaCena;
void Awake(){
DontDestroyOnLoad (transform.gameObject);
}
void Start () {
//
nomeDaCena = SceneManager.GetActiveScene ().name;
Cursor.visible = true;
Time.timeScale = 1;
//
BarraVolume.minValue = 0;
BarraVolume.maxValue = 1;
//=============== SAVES===========//
if (PlayerPrefs.HasKey ("VOLUME")) {
VOLUME = PlayerPrefs.GetFloat ("VOLUME");
BarraVolume.value = VOLUME;
} else {
PlayerPrefs.SetFloat ("VOLUME", 1);
BarraVolume.value = 1;
}
// =========SETAR BOTOES==========//
BotaoSalvarPref.onClick = new Button.ButtonClickedEvent ();
BotaoSalvarPref.onClick.AddListener (() => SalvarPreferencias ());
}
private void SalvarPreferencias(){
PlayerPrefs.SetFloat ("VOLUME", BarraVolume.value);
AplicarPreferencias ();
}
private void AplicarPreferencias(){
VOLUME = PlayerPrefs.GetFloat ("VOLUME");
}
void Update(){
if (SceneManager.GetActiveScene ().name != nomeDaCena) {
AudioListener.volume = VOLUME;
Destroy (gameObject);
}
}
}
Samuelsk- Membro
- PONTOS : 2653
REPUTAÇÃO : 17
Idade : 25
Respeito as regras :
Re: [RESOLVIDO] Como ajustar o volume em todo o jogo
pelo que vejo o valor VOLUME sempre vai ser zero,
poste isso na primeira linha do Update,nao sei se isso q vc ta querendo,mais dara um resultado do audiolistener só pra dar uma ideia de como funcionaria depois de salvar
ate logo
poste isso na primeira linha do Update,nao sei se isso q vc ta querendo,mais dara um resultado do audiolistener só pra dar uma ideia de como funcionaria depois de salvar
- Código:
void Update(){
VOLUME = BarraVolume.value;
AudioListener.volume = VOLUME;
}
ate logo
Re: [RESOLVIDO] Como ajustar o volume em todo o jogo
Em fim consegui..muito obrigado ae pela a ajuda de vocês..fiz umas coisa loka aqui e funcou kkk mt obrigado galera vlw
Samuelsk- Membro
- PONTOS : 2653
REPUTAÇÃO : 17
Idade : 25
Respeito as regras :
Re: [RESOLVIDO] Como ajustar o volume em todo o jogo
Boa tarde cara! o que você fez cara pra resolver? podes compartilhar conosco?Samuelsk escreveu:Em fim consegui..muito obrigado ae pela a ajuda de vocês..fiz umas coisa loka aqui e funcou kkk mt obrigado galera vlw
Abraço!
Re: [RESOLVIDO] Como ajustar o volume em todo o jogo
cara para passar o volume para outras cenas vc vai ter que salvar o valor e setar no audiolister a cada start de uma nova cena, o Marcos tem um script completo com as opções e salvar as opções , qualidade,volume, resolução etc...
Re: [RESOLVIDO] Como ajustar o volume em todo o jogo
Mano eu fiz o seguinte Script....dstaroski escreveu:Boa tarde cara! o que você fez cara pra resolver? podes compartilhar conosco?Samuelsk escreveu:Em fim consegui..muito obrigado ae pela a ajuda de vocês..fiz umas coisa loka aqui e funcou kkk mt obrigado galera vlw
Abraço!
- Script:
- Código:
using UnityEngine;
using System.Collections;
using UnityEngine.UI;
using UnityEngine.SceneManagement;
using System.Collections.Generic;
public class Volume : MonoBehaviour
{
public Button BotaoSalvarPref;
public Slider MixVolume;
private float VOLUME;
private string nomeDaCena;
void Awake(){
DontDestroyOnLoad (transform.gameObject);
}
void Start () {
nomeDaCena = SceneManager.GetActiveScene ().name;
Cursor.visible = true;
Time.timeScale = 1;
//
MixVolume.minValue = 0;
MixVolume.maxValue = 1;
//=============== SAVES===========//
if (PlayerPrefs.HasKey ("VOLUME")) {
VOLUME = PlayerPrefs.GetFloat ("VOLUME");
MixVolume.value = VOLUME;
} else {
PlayerPrefs.SetFloat ("VOLUME", 1);
MixVolume.value = 1;
}
// =========SETAR BOTOES==========//
BotaoSalvarPref.onClick = new Button.ButtonClickedEvent();
BotaoSalvarPref.onClick.AddListener(() => SalvarPreferencias());
}
private void SalvarPreferencias(){
PlayerPrefs.SetFloat ("VOLUME", MixVolume.value);
AplicarPreferencias ();
}
private void AplicarPreferencias(){
VOLUME = PlayerPrefs.GetFloat ("VOLUME");
}
void Update(){
VOLUME = MixVolume.value;
AudioListener.volume = VOLUME;
if (SceneManager.GetActiveScene ().name != nomeDaCena) {
AudioListener.volume = VOLUME;
Destroy (gameObject);
}
}
}
Ae..c colocar esse Script em casa Cena..(Aconselho a colocar na camera :p
ae e só arastar o Slide..e o botão para salvar os valores..e pronto :lol!:
Samuelsk- Membro
- PONTOS : 2653
REPUTAÇÃO : 17
Idade : 25
Respeito as regras :
Re: [RESOLVIDO] Como ajustar o volume em todo o jogo
Puta vida...o desgraça e escrever no escuro..e com sono..mals ae os erros ortograficos..
Não tenho como editar sá bagaça.....(mas imagino eu q dar pra entender oq eu quis dizer kkk)
Não tenho como editar sá bagaça.....(mas imagino eu q dar pra entender oq eu quis dizer kkk)
Samuelsk- Membro
- PONTOS : 2653
REPUTAÇÃO : 17
Idade : 25
Respeito as regras :
Tópicos semelhantes
» [RESOLVIDO] Como acessar e mudar o volume via script
» [RESOLVIDO] Como criar varias contas em um jogo como PlayerPrefs.
» [RESOLVIDO] Como coloco uma introdução no meu jogo?
» [RESOLVIDO] Como vocês definem os requisitos do jogo?
» [RESOLVIDO] Como salvar ao fechar o jogo? (Android)
» [RESOLVIDO] Como criar varias contas em um jogo como PlayerPrefs.
» [RESOLVIDO] Como coloco uma introdução no meu jogo?
» [RESOLVIDO] Como vocês definem os requisitos do jogo?
» [RESOLVIDO] Como salvar ao fechar o jogo? (Android)
SchultzGames :: UNITY 3D :: Resolvidos
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos