[RESOLVIDO] Erro no Script tocar Audio
2 participantes
SchultzGames :: UNITY 3D :: Resolvidos
Página 1 de 1
[RESOLVIDO] Erro no Script tocar Audio
Eu estou com o script do marcos de AIEnemy, e queria fazer com que quando o inimigo estivesse perseguindo tocasse uma música, mas não está funcionando, alguém pode me ajudar?
Script:
Script:
- Código:
_audioSource.clip = som;
_audioSource.Play ();
TIKO- Avançado
- PONTOS : 1792
REPUTAÇÃO : 29
Idade : 16
Áreas de atuação : Modelagem 3D (Básico), Programação (Mais básico ainda), Unity 3D, C#
Respeito as regras :
Re: [RESOLVIDO] Erro no Script tocar Audio
- Código:
using UnityEngine;
using System.Collections;
using UnityEngine.AI;
public class INTELIGENCIA : MonoBehaviour {
public Transform Player;
private NavMeshAgent naveMesh;
private float DistanciaDoPlayer, DistanciaDoAIPoint;
public float DistanciaDePercepcao = 30,DistanciaDeSeguir = 20, DistanciaDeAtacar = 2, VelocidadeDePasseio = 3, VelocidadeDePerseguicao = 6,TempoPorAtaque = 1.5f, DanoDoInimigo = 40;
private bool VendoOPlayer;
public Transform[] DestinosAleatorios;
private int AIPointAtual;
private bool PerseguindoAlgo, contadorPerseguindoAlgo,atacandoAlgo;
private float cronometroDaPerseguicao,cronometroAtaque;
public AudioClip som;
private AudioSource _audioSource;
void Start (){
AIPointAtual = Random.Range (0, DestinosAleatorios.Length);
naveMesh = transform.GetComponent<NavMeshAgent> ();
_audioSource = gameObject.AddComponent<AudioSource>();
}
void Update (){
DistanciaDoPlayer = Vector3.Distance(Player.transform.position,transform.position);
DistanciaDoAIPoint = Vector3.Distance(DestinosAleatorios[AIPointAtual].transform.position,transform.position);
//============================== RAYCAST ===================================//
RaycastHit hit;
Vector3 deOnde = transform.position;
Vector3 paraOnde = Player.transform.position;
Vector3 direction = paraOnde - deOnde;
if(Physics.Raycast (transform.position,direction,out hit,1000) && DistanciaDoPlayer < DistanciaDePercepcao ){
if(hit.collider.gameObject.CompareTag("Player")){
VendoOPlayer = true;
}else{
VendoOPlayer = false;
}
}
//================ CHECHAGENS E DECISOES DO INIMIGO ================//
if(DistanciaDoPlayer > DistanciaDePercepcao){
Passear();
}
if (DistanciaDoPlayer <= DistanciaDePercepcao && DistanciaDoPlayer > DistanciaDeSeguir) {
if(VendoOPlayer == true){
Olhar ();
}else{
Passear();
}
}
if (DistanciaDoPlayer <= DistanciaDeSeguir && DistanciaDoPlayer > DistanciaDeAtacar) {
if(VendoOPlayer == true){
Perseguir();
PerseguindoAlgo = true;
}else{
Passear();
}
}
if (DistanciaDoPlayer <= DistanciaDeAtacar) {
Atacar();
}
//COMANDOS DE PASSEAR
if (DistanciaDoAIPoint <= 2) {
AIPointAtual = Random.Range (0, DestinosAleatorios.Length);
Passear();
}
//CONTADORES DE PERSEGUICAO
if (contadorPerseguindoAlgo == true) {
cronometroDaPerseguicao += Time.deltaTime;
}
if (cronometroDaPerseguicao >= 5 && VendoOPlayer == false) {
contadorPerseguindoAlgo = false;
cronometroDaPerseguicao = 0;
PerseguindoAlgo = false;
}
// CONTADOR DE ATAQUE
if (atacandoAlgo == true) {
cronometroAtaque += Time.deltaTime;
}
if (cronometroAtaque >= TempoPorAtaque && DistanciaDoPlayer <= DistanciaDeAtacar) {
atacandoAlgo = true;
cronometroAtaque = 0;
PLAYER.VIDA = PLAYER.VIDA - DanoDoInimigo;
Debug.Log ("recebeuAtaque");
} else if (cronometroAtaque >= TempoPorAtaque && DistanciaDoPlayer > DistanciaDeAtacar) {
atacandoAlgo = false;
cronometroAtaque = 0;
Debug.Log ("errou");
}
}
void Passear (){
_audioSource.Stop ();
if (PerseguindoAlgo == false) {
naveMesh.acceleration = 5;
naveMesh.speed = VelocidadeDePasseio;
naveMesh.destination = DestinosAleatorios [AIPointAtual].position;
} else if (PerseguindoAlgo == true) {
contadorPerseguindoAlgo = true;
}
}
void Olhar(){
naveMesh.speed = 0;
transform.LookAt (Player);
}
void Perseguir(){
naveMesh.acceleration = 8;
naveMesh.speed = VelocidadeDePerseguicao;
naveMesh.destination = Player.position;
_audioSource.clip = som;
_audioSource.Play ();
}
void Atacar (){
atacandoAlgo = true;
}
}
TIKO- Avançado
- PONTOS : 1792
REPUTAÇÃO : 29
Idade : 16
Áreas de atuação : Modelagem 3D (Básico), Programação (Mais básico ainda), Unity 3D, C#
Respeito as regras :
Re: [RESOLVIDO] Erro no Script tocar Audio
Na verdade ele só toca a música quando o inimigo entra dentro do collider do player, o comando de tocar a música está na void de perseguição.
TIKO- Avançado
- PONTOS : 1792
REPUTAÇÃO : 29
Idade : 16
Áreas de atuação : Modelagem 3D (Básico), Programação (Mais básico ainda), Unity 3D, C#
Respeito as regras :
Re: [RESOLVIDO] Erro no Script tocar Audio
- Código:
void Perseguir(){
naveMesh.acceleration = 8;
naveMesh.speed = VelocidadeDePerseguicao;
naveMesh.destination = Player.position;
_audioSource.clip = som;
//checa se o audio nao esta tocando[/size]
if(!_audioSource.isPlaying){
_audioSource.Play (); //tocar
}
}
suponho que voce adicionou as variables de audiosource nao é?
entao, se o audio estiver tudo linkado tudo certo,
o que eu recomendo e verificar se o audio esta tocando, no caso do que fiz acima, verifica se o audio nao esta tocando, se
nao estiver vai tocar,
pq eu acho que ele esta tocando e repetindo a funçao "_audioSource.Play()" toda hora , entao vai dando o loop de play mais ou menos isso
_audioSource.Play (); é chamado
TIKO- Avançado
- PONTOS : 1792
REPUTAÇÃO : 29
Idade : 16
Áreas de atuação : Modelagem 3D (Básico), Programação (Mais básico ainda), Unity 3D, C#
Respeito as regras :
Re: [RESOLVIDO] Erro no Script tocar Audio
Só para mostrar tbm, na void de Passear eu coloquei assim:
para parar de tocar quando estiver passeando.
- Código:
if(_audioSource.isPlaying){
_audioSource.Stop (); //parar
}
para parar de tocar quando estiver passeando.
TIKO- Avançado
- PONTOS : 1792
REPUTAÇÃO : 29
Idade : 16
Áreas de atuação : Modelagem 3D (Básico), Programação (Mais básico ainda), Unity 3D, C#
Respeito as regras :
Re: [RESOLVIDO] Erro no Script tocar Audio
TIKO escreveu:Só para mostrar tbm, na void de Passear eu coloquei assim:
- Código:
if(_audioSource.isPlaying){
_audioSource.Stop (); //parar
}
para parar de tocar quando estiver passeando.
Sim, sempre bom fazer esses checks
Se não o áudio vai tocar e não vai nem perceber que ele já está tocando (mesmo que seja por 0.01 segundos e repetindo kk
Tópicos semelhantes
» [RESOLVIDO] Script deveria tocar som durante disparo, mas ao invés disso da erro.
» [Resolvido]Tocar Audio ao Colidir com Tag Player
» [RESOLVIDO] Tocar áudio ao clicar em um botão
» [RESOLVIDO] Tocar som em script que exibe uma mensagem
» [RESOLVIDO] Erro com Audio Source ???
» [Resolvido]Tocar Audio ao Colidir com Tag Player
» [RESOLVIDO] Tocar áudio ao clicar em um botão
» [RESOLVIDO] Tocar som em script que exibe uma mensagem
» [RESOLVIDO] Erro com Audio Source ???
SchultzGames :: UNITY 3D :: Resolvidos
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos