[RESOLVIDO] Reproduzir audio e com a mesma tecla um audio diferente
4 participantes
SchultzGames :: UNITY 3D :: Resolvidos
Página 1 de 1
[RESOLVIDO] Reproduzir audio e com a mesma tecla um audio diferente
eae pessoal do forum ,queria a ajuda de vcs para achar o erro nesse script (cs) ,para que quando aperta uma tecla ele reproduz um audio e quando aperta a mesma tecla reproduz outro audio. So que esta dando erro nAo sei porque
- Código:
// (Void Update)
// SomLigarMotor
if (CrossPlatformInputManager.GetButtonDown("LigarMotor"))
{
SomTLigado.GetComponent<AudioSource>().Play();
SomTDesligado.GetComponent<AudioSource>().Stop();
}
else if (CrossPlatformInputManager.GetButtonDown("LigarMotor"))
{
SomTDesligado.GetComponent<AudioSource>().Play();
SomTLigado.GetComponent<AudioSource>().Stop();
}
Gabryellx007- Membro
- PONTOS : 2493
REPUTAÇÃO : 8
Respeito as regras :
Re: [RESOLVIDO] Reproduzir audio e com a mesma tecla um audio diferente
O else if não está fazendo nada ai pode retira-lo, Sobre a Mudança de audio...
Pode ser que alguma função esteja passando um Clip diferente para o Audio-source.
Poste o Script inteiro.
Pode ser que alguma função esteja passando um Clip diferente para o Audio-source.
Poste o Script inteiro.
Magnatah- Instrutor
- PONTOS : 3547
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] Reproduzir audio e com a mesma tecla um audio diferente
Utilize uma variável do tipo bool para as verificações de ligado e desligado, veja este exemplo:
Espero ter ajudado. Magnatah veloz...
- Exemplo:
- Código:
bool Ligado = true;
void Update()
{
if(Input.GetKeyDown(Keycode.A))
{
if(Ligado)
{
// Reproduzir Som A
Ligado = false;
}
else
{
// Reproduzir Som B
Ligado = true;
}
}
}
Espero ter ajudado. Magnatah veloz...
Tegh- Avançado
- PONTOS : 2653
REPUTAÇÃO : 97
Idade : 23
Respeito as regras :
Re: [RESOLVIDO] Reproduzir audio e com a mesma tecla um audio diferente
isso e so um sistema de audio ao todo de um veiculo
- Código:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityStandardAssets.CrossPlatformInput;
public class CaminhAudios : MonoBehaviour {
public GameObject SomFreio;
public GameObject SomFreioDeMao;
public GameObject SomTLigado;
public GameObject SomTDesligado;
// Use this for initialization
void Start () {
}
// Update is called once per frame
void Update () {
// SomFreioo;;;;
if (CrossPlatformInputManager.GetButtonDown("Freio"))
{
SomFreio.GetComponent<AudioSource>().Play();
}
else if (CrossPlatformInputManager.GetButtonDown("Freio"))
{
SomFreio.GetComponent<AudioSource>().Stop();
}
// SomFreioDeMAo;;;
if (CrossPlatformInputManager.GetButtonDown("FreioDMao"))
{
SomFreioDeMao.GetComponent<AudioSource>().Play();
}
else if (CrossPlatformInputManager.GetButtonDown("FreioDMao"))
{
SomFreioDeMao.GetComponent<AudioSource>().Stop();
}
// SomLigarMotor;;;
if (CrossPlatformInputManager.GetButtonDown("LigarMotor"))
{
SomTLigado.GetComponent<AudioSource>().Play();
SomTDesligado.GetComponent<AudioSource>().Stop();
}
else if (CrossPlatformInputManager.GetButtonDown("LigarMotor"))
{
SomTDesligado.GetComponent<AudioSource>().Play();
SomTLigado.GetComponent<AudioSource>().Stop();
}
}
}
Gabryellx007- Membro
- PONTOS : 2493
REPUTAÇÃO : 8
Respeito as regras :
Re: [RESOLVIDO] Reproduzir audio e com a mesma tecla um audio diferente
"...para que quando aperta uma tecla ele reproduz um audio e quando aperta a mesma tecla reproduz outro audio..."
Sua Explicação foi meio confusa, mas basicamente o erro é que ao apertar uma tecla Algum Som Reproduz, porem ao Aperta-la novamente outro som diferente é reproduzido. ?
Sua Explicação foi meio confusa, mas basicamente o erro é que ao apertar uma tecla Algum Som Reproduz, porem ao Aperta-la novamente outro som diferente é reproduzido. ?
Magnatah- Instrutor
- PONTOS : 3547
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] Reproduzir audio e com a mesma tecla um audio diferente
Sim amigo exatamente isso ,
ex:
if(GetkeyDown("E"))...
reproduz som A(Ligar Veiculo)
(E o Som B deve estar desligado)
if(GetkeyDown("E"))...
reproduz som B(Desligar Veiculo)
(E o Som A deve estar Desligado)
e +- assim a logica
mas não deu certo essa logica
[list=linenums]
[*]if (CrossPlatformInputManager.GetButtonDown("LigarMotor"))
[*] {
[*] SomTLigado.GetComponent<AudioSource>().Play();
[*] SomTDesligado.GetComponent<AudioSource>().Stop();
[*] }
[*] else if (CrossPlatformInputManager.GetButtonDown("LigarMotor"))
[*] {
[*] SomTDesligado.GetComponent<AudioSource>().Play();
[*] SomTLigado.GetComponent<AudioSource>().Stop();
[*] }
[/list]
ex:
if(GetkeyDown("E"))...
reproduz som A(Ligar Veiculo)
(E o Som B deve estar desligado)
if(GetkeyDown("E"))...
reproduz som B(Desligar Veiculo)
(E o Som A deve estar Desligado)
e +- assim a logica
mas não deu certo essa logica
[list=linenums]
[*]if (CrossPlatformInputManager.GetButtonDown("LigarMotor"))
[*] {
[*] SomTLigado.GetComponent<AudioSource>().Play();
[*] SomTDesligado.GetComponent<AudioSource>().Stop();
[*] }
[*] else if (CrossPlatformInputManager.GetButtonDown("LigarMotor"))
[*] {
[*] SomTDesligado.GetComponent<AudioSource>().Play();
[*] SomTLigado.GetComponent<AudioSource>().Stop();
[*] }
[/list]
Gabryellx007- Membro
- PONTOS : 2493
REPUTAÇÃO : 8
Respeito as regras :
Re: [RESOLVIDO] Reproduzir audio e com a mesma tecla um audio diferente
Tegh a sua ideia e bem interessante so que não deu certo da o mesmo erro
Gabryellx007- Membro
- PONTOS : 2493
REPUTAÇÃO : 8
Respeito as regras :
Re: [RESOLVIDO] Reproduzir audio e com a mesma tecla um audio diferente
Gabryellx007 escreveu:Sim amigo exatamente isso ,
ex:
if(GetkeyDown("E"))...
reproduz som A(Ligar Veiculo)
(E o Som B deve estar desligado)
if(GetkeyDown("E"))...
reproduz som B(Desligar Veiculo)
(E o Som A deve estar Desligado)
e +- assim a logica
mas não deu certo essa logica
[list=linenums]
[*]if (CrossPlatformInputManager.GetButtonDown("LigarMotor"))
[*] {
[*] SomTLigado.GetComponent<AudioSource>().Play();
[*] SomTDesligado.GetComponent<AudioSource>().Stop();
[*] }
[*] else if (CrossPlatformInputManager.GetButtonDown("LigarMotor"))
[*] {
[*] SomTDesligado.GetComponent<AudioSource>().Play();
[*] SomTLigado.GetComponent<AudioSource>().Stop();
[*] }
[/list]
Vou imaginar que o problema ta no som do motor, sendo assim, qual som é tocado ao invés do som correto?
BRGC- ProgramadorMaster
- PONTOS : 3051
REPUTAÇÃO : 59
Idade : 20
Áreas de atuação : C#, C++, C, Flutter
Respeito as regras :
Re: [RESOLVIDO] Reproduzir audio e com a mesma tecla um audio diferente
- Código:
if (CrossPlatformInputManager.GetButtonDown("LigarMotor"))[size=14][/size] {[size=14][/size] SomTLigado.GetComponent<AudioSource>().Play();[size=14][/size] SomTDesligado.GetComponent<AudioSource>().Stop(); [size=14][/size] }[size=14][/size] else if (CrossPlatformInputManager.GetButtonDown("LigarMotor"))[size=14][/size] {[size=14][/size] SomTDesligado.GetComponent<AudioSource>().Play(); [size=14][/size] SomTLigado.GetComponent<AudioSource>().Stop(); [size=14][/size] }
Sinto que tem um problema de logica aqui:
Se o botão "ligarMotor" for pressionado
Ativar som ligado
Desativar som ligado
Senão se o botão "ligarMotor" for pressionado
Desativar som Ligado
Ativar som desligado
O que você tá basicamente fazendo é: Se o botão não tiver pressionado, você tá perguntando de novo se o botão está pressionado
Script "Corrigido":
- Código:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityStandardAssets.CrossPlatformInput;
public class CaminhAudios : MonoBehaviour {
public bool motorLigado;
public GameObject SomFreio;
public GameObject SomFreioDeMao;
public GameObject SomTLigado;
public GameObject SomTDesligado;
// Update is called once per frame
void Update ()
{
// SomFreioo;;;;
if (CrossPlatformInputManager.GetButtonDown("Freio"))
{
SomFreio.GetComponent<AudioSource>().Play();
}
else if (CrossPlatformInputManager.GetButtonDown("Freio"))
{
SomFreio.GetComponent<AudioSource>().Stop();
}
// SomFreioDeMAo;;;
if (CrossPlatformInputManager.GetButtonDown("FreioDMao"))
{
SomFreioDeMao.GetComponent<AudioSource>().Play();
}
else if (CrossPlatformInputManager.GetButtonDown("FreioDMao"))
{
SomFreioDeMao.GetComponent<AudioSource>().Stop();
}
// SomLigarMotor;;;
if (CrossPlatformInputManager.GetButtonDown("LigarMotor"))
{
if(motorLigado)
{
motorLigado = false;
SomTLigado.GetComponent<AudioSource>().Stop();
SomTDesligado.GetComponent<AudioSource>().Play();
}
if(!motorLigado)
{
motorLigado = true;
SomTLigado.GetComponent<AudioSource>().Play();
SomTDesligado.GetComponent<AudioSource>().Stop();
}
}
}
}
Última edição por BRGC em Qui Jul 25, 2019 7:50 pm, editado 2 vez(es) (Motivo da edição : Imagino que o forum está tendo problemas com formatação pq PQP)
BRGC- ProgramadorMaster
- PONTOS : 3051
REPUTAÇÃO : 59
Idade : 20
Áreas de atuação : C#, C++, C, Flutter
Respeito as regras :
Re: [RESOLVIDO] Reproduzir audio e com a mesma tecla um audio diferente
Agora sim deu certo ,Obrigado a todos ai!
Gabryellx007- Membro
- PONTOS : 2493
REPUTAÇÃO : 8
Respeito as regras :
Tópicos semelhantes
» [RESOLVIDO] Reproduzir animação com tecla?
» [RESOLVIDO] Combo com a Mesma Tecla
» [RESOLVIDO] Dúvida com audio.stop e audio.play
» [RESOLVIDO] Resolução diferente no celular vs pc
» [RESOLVIDO] Prefab com altura diferente na Scene
» [RESOLVIDO] Combo com a Mesma Tecla
» [RESOLVIDO] Dúvida com audio.stop e audio.play
» [RESOLVIDO] Resolução diferente no celular vs pc
» [RESOLVIDO] Prefab com altura diferente na Scene
SchultzGames :: UNITY 3D :: Resolvidos
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos