Olá, estou com um problema na aula “Adicionando Som de Colisão” do módulo construção extrema, meu código está igual ao da aula, mas mesmo depois de passar 5 segundos os cubos continuam fazendo sons de colisão, alguém sabe como resolver?
3 curtidas
Desmarcou a opção de loop?
2 curtidas
Está desmarcada, mas mesmo após passar os 5 segundos os cubos toda vez que colidem, eles fazem som.
3 curtidas
Por favor, anexe mais informações sobre o problema. Se possível, envie capturas de tela dos seus scripts e do prefab do seu cubo para que possamos analisar com mais detalhes.
3 curtidas
Bem observado! Fiz uns testes no projeto e realmente o som continua sendo tocado após o tempo de 5 segundos.
Segue abaixo o script atualizado de CuboColisao:
using UnityEngine;
public class CuboColisao : MonoBehaviour
{
[SerializeField] private AudioSource colisaoAudioSource;
private bool podeTocarSom = true;
private void OnCollisionEnter(Collision collision)
{
// Se já desativou o som, sai da função, não executa o resto do código
if (!podeTocarSom) return;
// Toca o som de colisão
colisaoAudioSource.PlayOneShot(colisaoAudioSource.clip);
// Garante que a rotina para desativar o som seja chamada apenas uma vez
if (!IsInvoking(nameof(DesativarSom)))
{
// Desativa a detecção de sons após 5 segundos
Invoke(nameof(DesativarSom), 5f);
}
}
private void DesativarSom()
{
podeTocarSom = false;
}
}
2 curtidas
O script deu certo, obrigado!
2 curtidas