Mudar o volume do AudioSource conforme altera uma variavel
3 participantes
Página 1 de 1
Mudar o volume do AudioSource conforme altera uma variavel
bom dia pessoal!
tenho uma variavel, por exemplo, public int valorSom; que vai mudar de 0 a 10 somente, através dos comandos Input.GetKeyDown("left") e Input.GetKeyDown("right").
o volume do AudioSource vai de 0 a 1, então eu quero que esse valor do AudioSouce mude proporcionalmente conforme eu aumento ou diminuo a variavel valorSom.
no menu do jogo eu vou ter duas opções, a volume BG das musicas das fases e do som do menu principal; e a
volume SE dos efeitos do jogo, tipo tiro, grito, explosao,
o painel do menu está assim, o volumes já começam no máximo, mas com a altura confortável para o jogo:
volume BG 10
volume SE 10
o 10 do BG será a variavel 'valorBg' e o 10 do SE 'valorSe'
se eu aumentar de 1 em 1 essas duas variaveis acima, como que eu faço para aumentar proporcionalmente o volume do AudioSource?
tenho uma variavel, por exemplo, public int valorSom; que vai mudar de 0 a 10 somente, através dos comandos Input.GetKeyDown("left") e Input.GetKeyDown("right").
o volume do AudioSource vai de 0 a 1, então eu quero que esse valor do AudioSouce mude proporcionalmente conforme eu aumento ou diminuo a variavel valorSom.
no menu do jogo eu vou ter duas opções, a volume BG das musicas das fases e do som do menu principal; e a
volume SE dos efeitos do jogo, tipo tiro, grito, explosao,
o painel do menu está assim, o volumes já começam no máximo, mas com a altura confortável para o jogo:
volume BG 10
volume SE 10
o 10 do BG será a variavel 'valorBg' e o 10 do SE 'valorSe'
se eu aumentar de 1 em 1 essas duas variaveis acima, como que eu faço para aumentar proporcionalmente o volume do AudioSource?
Marc7- Mestre
- PONTOS : 3443
REPUTAÇÃO : 28
Respeito as regras :
Re: Mudar o volume do AudioSource conforme altera uma variavel
você pode mudar a variavel do audio source fazendo isso:
SeuAudiosourceBG.volume = volumeBG/10
SeuAudiosourceSE.volume = volumeSE/10
SeuAudiosourceBG.volume = volumeBG/10
SeuAudiosourceSE.volume = volumeSE/10
Re: Mudar o volume do AudioSource conforme altera uma variavel
valeu hetrodo_gamer, mas volumeBG e volumeSE não são variaveis, eles são o texto que está dentro do painel 'Configurações de audio' do jogo.
as variaveis que alteram o volume de volumeBG e volumeSE são essas aqui:
estou acessando por exemplo a variavel 'volBack' atraves deste script:
tenho aqui um game object empty que vai conter o audio BGM do main menu, esse audio já começa tocando quando a cena menu estiver ativa.
quando eu clicar em GAME START quero fazer o volume desse audio diminuir em fade. atrave de outro script eu fiz esse comando:
meu problema é quando eu mudo o valor de volBack apertando p frente ou trás, a avariavel até que muda o valor mas o audio não altera o volume, e olha que o objeto está com o componente AudioSource e tem o clip do audio inserido.
as variaveis que alteram o volume de volumeBG e volumeSE são essas aqui:
- Código:
public static float volBack = 10f;
public static float volEfeitos = 10f;
estou acessando por exemplo a variavel 'volBack' atraves deste script:
- Código:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class VolumeBGMain : MonoBehaviour {
private AudioSource soundMainBg;
void Start () {
if (soundMainBg == null) {
soundMainBg = GetComponent<AudioSource>();
}
}
void Update () {
if (GCMenuPrincipal.volBack == 10f) {
GetComponent<AudioSource>().volume = 10f / 10;
}
else if (GCMenuPrincipal.volBack == 9f) {
GetComponent<AudioSource>().volume = 9f / 10;
}
else if (GCMenuPrincipal.volBack == 8f) {
GetComponent<AudioSource>().volume = 8f / 10;
}
else if (GCMenuPrincipal.volBack == 7f) {
GetComponent<AudioSource>().volume = 7f / 10;
}
else if (GCMenuPrincipal.volBack == 6f) {
GetComponent<AudioSource>().volume = 6f / 10;
}
else if (GCMenuPrincipal.volBack == 5f) {
GetComponent<AudioSource>().volume = 5f / 10;
}
else if (GCMenuPrincipal.volBack == 4f) {
GetComponent<AudioSource>().volume = 4f / 10;
}
else if (GCMenuPrincipal.volBack == 3f) {
GetComponent<AudioSource>().volume = 3f / 10;
}
else if (GCMenuPrincipal.volBack == 2f) {
GetComponent<AudioSource>().volume = 2f / 10;
}
else if (GCMenuPrincipal.volBack == 1f) {
GetComponent<AudioSource>().volume = 1f / 10;
}
else if (GCMenuPrincipal.volBack == 0f) {
GetComponent<AudioSource>().volume = 0f;
}
}
}
tenho aqui um game object empty que vai conter o audio BGM do main menu, esse audio já começa tocando quando a cena menu estiver ativa.
quando eu clicar em GAME START quero fazer o volume desse audio diminuir em fade. atrave de outro script eu fiz esse comando:
- Código:
var bgMain = GameObject.Find("BackgroundAudioMenu").GetComponent<AudioSource>();
bgMain.volume -= Time.deltaTime * 2f;
meu problema é quando eu mudo o valor de volBack apertando p frente ou trás, a avariavel até que muda o valor mas o audio não altera o volume, e olha que o objeto está com o componente AudioSource e tem o clip do audio inserido.
Marc7- Mestre
- PONTOS : 3443
REPUTAÇÃO : 28
Respeito as regras :
Re: Mudar o volume do AudioSource conforme altera uma variavel
Simplifique as coisas jovem... não precisa de tantos if's... apenas um pouco de matemática.
Quanto ao volume não alterar, podem ser vários problemas, como o script não conseguir achar um AudioSource anexado, dentre outras coisas.
- Código:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class VolumeBGMain : MonoBehaviour {
AudioSource soundMainBg;
void Start () {
if (soundMainBg == null) {
soundMainBg = GetComponent<AudioSource>();
}
}
void Update () {
soundMainBg.volume = GCMenuPrincipal.volBack / 10.0f;
}
}
Quanto ao volume não alterar, podem ser vários problemas, como o script não conseguir achar um AudioSource anexado, dentre outras coisas.
Tópicos semelhantes
» Como acessar uma variável de um script utilizando como parâmetro uma variável nomescript
» como mudar a direção global do jogo no unity para uma que mude conforme a camera
» COMO MUDAR UMA VARIAVEL APOS EX: 10 DIAS
» mudar valor da variavel bool depois de 3 segundos
» Animação está sendo executado conforme o tempo e não conforme o player muda de velocidade
» como mudar a direção global do jogo no unity para uma que mude conforme a camera
» COMO MUDAR UMA VARIAVEL APOS EX: 10 DIAS
» mudar valor da variavel bool depois de 3 segundos
» Animação está sendo executado conforme o tempo e não conforme o player muda de velocidade
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos