[RESOLVIDO] Tentando implementar sons no Character Controller
2 participantes
SchultzGames :: UNITY 3D :: Resolvidos
Página 1 de 1
[RESOLVIDO] Tentando implementar sons no Character Controller
Alguém pode me ajudar? Eu estou usando o prefab do character controller padrão da Unity e estou tendo alguns problemas em edita-lo.
Primeiramente eu implementei o sistema de vida e estamina que o marcos criou. Agora minha duvida é a seguinte.
Quando minha estamina finalizar eu quero que o personagem reproduza um audio de cansaço, mas que o audio não repita toda vez que eu zerar minha estamina eu quero criar algo parecido com um timer. exemplo: Ele so vai executar o audio a cara 3 vezes que a estamina zerar.
O outro problema é que não a divisão entre os audios.O som dos passos não deixa nenhum outro audio terminar para que ele seja executado em seguida, ele simplesmente sobrepõe o audio que deveria ser tocado até o final.
E o outro problema é que mesmo que eu implemente de qualquer outro jeito os audios eles sempre ficam sendo executados a cada frame. Ele fica chamando o audio varias e varias vezes eu não sei como resolver isso, se alguém puder me ajudar fico muito grato.
Primeiramente eu implementei o sistema de vida e estamina que o marcos criou. Agora minha duvida é a seguinte.
Quando minha estamina finalizar eu quero que o personagem reproduza um audio de cansaço, mas que o audio não repita toda vez que eu zerar minha estamina eu quero criar algo parecido com um timer. exemplo: Ele so vai executar o audio a cara 3 vezes que a estamina zerar.
O outro problema é que não a divisão entre os audios.O som dos passos não deixa nenhum outro audio terminar para que ele seja executado em seguida, ele simplesmente sobrepõe o audio que deveria ser tocado até o final.
E o outro problema é que mesmo que eu implemente de qualquer outro jeito os audios eles sempre ficam sendo executados a cada frame. Ele fica chamando o audio varias e varias vezes eu não sei como resolver isso, se alguém puder me ajudar fico muito grato.
PacienteZERO- Membro
- PONTOS : 3372
REPUTAÇÃO : 4
Respeito as regras :
Re: [RESOLVIDO] Tentando implementar sons no Character Controller
PacienteZERO escreveu:Alguém pode me ajudar? Eu estou usando o prefab do First person controller padrão da Unity e estou tendo alguns problemas em edita-lo.
Primeiramente eu implementei o sistema de vida e estamina que o marcos criou. Agora minha duvida é a seguinte.
Quando minha estamina finalizar eu quero que o personagem reproduza um audio de cansaço, mas que o audio não repita toda vez que eu zerar minha estamina eu quero criar algo parecido com um timer. exemplo: Ele so vai executar o audio a cara 3 vezes que a estamina zerar.
O outro problema é que não a divisão entre os audios.O som dos passos não deixa nenhum outro audio terminar para que ele seja executado em seguida, ele simplesmente sobrepõe o audio que deveria ser tocado até o final.
E o outro problema é que mesmo que eu implemente de qualquer outro jeito os audios eles sempre ficam sendo executados a cada frame. Ele fica chamando o audio varias e varias vezes eu não sei como resolver isso, se alguém puder me ajudar fico muito grato.
PacienteZERO- Membro
- PONTOS : 3372
REPUTAÇÃO : 4
Respeito as regras :
Re: [RESOLVIDO] Tentando implementar sons no Character Controller
Bom eu peguei uma parte do script do marcos acredito que seja esse aqui
a maneira mais simples que você pode fazer é simplesmente adicionar um variável do tipo bool para controlar isso é utilizar o IEnumerator pra controlar com o tempo
Quanto os áudios sobrepondo os outros vc pode verificar se ele ainda esta tocando usando o isPlaying
- Código:
void SistemaDeEstamina()
{
float multEuler = ((1 / EstaminaCheia) * EstaminaAtual) * ((1 / FomeCheia) * FomeAtual);
if (EstaminaAtual >= EstaminaCheia)
{
EstaminaAtual = EstaminaCheia;
}
else
{
EstaminaAtual += Time.deltaTime * (velocidadeEstamina / 40) * Mathf.Pow(2.718f, multEuler);
}
if (EstaminaAtual <= 0)
{
EstaminaAtual = 0;
Jogador.GetComponent<FirstPersonController>().m_RunSpeed = velocidadeCaminhando;
semEstamina = true;
}
if (semEstamina == true && EstaminaAtual >= (EstaminaCheia * 0.15f))
{
Jogador.GetComponent<FirstPersonController>().m_RunSpeed = velocidadeCorrendo;
semEstamina = false;
}
if (Input.GetKey(KeyCode.LeftShift) && semEstamina == false)
{
EstaminaAtual -= Time.deltaTime * (velocidadeEstamina / 15) * Mathf.Pow(2.718f, multEuler);
}
}
a maneira mais simples que você pode fazer é simplesmente adicionar um variável do tipo bool para controlar isso é utilizar o IEnumerator pra controlar com o tempo
- Código:
private bool _CanPlayAudio = true;
private IEnumerator CanPlayAudio()
{
_CanPlayAudio = false;
yield return new WaitForSeconds(Random.Range(2.5f, 5));
_CanPlayAudio = true;
}
- Código:
///////////////////
private bool _CanPlayAudio = true;
public AudioSource withoutStamina; ///adicionar o audio source
public AudioClip withoutStaminaClip; ///adicionar o clip
private IEnumerator CanPlayAudio()
{
_CanPlayAudio = false;
yield return new WaitForSeconds(Random.Range(2.5f, 5));
_CanPlayAudio = true;
}
//////////////////
void SistemaDeEstamina()
{
float multEuler = ((1 / EstaminaCheia) * EstaminaAtual) * ((1 / FomeCheia) * FomeAtual);
if (EstaminaAtual >= EstaminaCheia)
{
EstaminaAtual = EstaminaCheia;
}
else
{
EstaminaAtual += Time.deltaTime * (velocidadeEstamina / 40) * Mathf.Pow(2.718f, multEuler);
}
if (EstaminaAtual <= 0)
{
EstaminaAtual = 0;
Jogador.GetComponent<FirstPersonController>().m_RunSpeed = velocidadeCaminhando;
semEstamina = true;
///ADICIONANDO
if(!withoutStamina.isPlaying && _CanPlayAudio)
{
withoutStamina.clip = withoutStaminaClip;
withoutStamina.Play();
StartCoroutine(CanPlayAudio());
}
}
if (semEstamina == true && EstaminaAtual >= (EstaminaCheia * 0.15f))
{
Jogador.GetComponent<FirstPersonController>().m_RunSpeed = velocidadeCorrendo;
semEstamina = false;
}
if (Input.GetKey(KeyCode.LeftShift) && semEstamina == false)
{
EstaminaAtual -= Time.deltaTime * (velocidadeEstamina / 15) * Mathf.Pow(2.718f, multEuler);
}
}
Quanto os áudios sobrepondo os outros vc pode verificar se ele ainda esta tocando usando o isPlaying
Weslley- Moderador
- PONTOS : 5727
REPUTAÇÃO : 744
Idade : 26
Áreas de atuação : Inversión, Desarrollo, Juegos e Web
Respeito as regras :
Re: [RESOLVIDO] Tentando implementar sons no Character Controller
Muito obrigado, muito obrigado mesmo funcionou perfeitamente. Tive so que dar uma ajustada para minha situação, mas ficou perfeito
PacienteZERO- Membro
- PONTOS : 3372
REPUTAÇÃO : 4
Respeito as regras :
Tópicos semelhantes
» [RESOLVIDO] correr character controller
» [RESOLVIDO] Script para pular com character controller
» [RESOLVIDO] [Character Controller] o Capsula Collider Dele é Só pra Bonito??
» [Desabilitar gravidade de um Character Controller]
» Character Controller e Rigidbody
» [RESOLVIDO] Script para pular com character controller
» [RESOLVIDO] [Character Controller] o Capsula Collider Dele é Só pra Bonito??
» [Desabilitar gravidade de um Character Controller]
» Character Controller e Rigidbody
SchultzGames :: UNITY 3D :: Resolvidos
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos