[RESOLVIDO] Tocar som em script que exibe uma mensagem
5 participantes
SchultzGames :: UNITY 3D :: Resolvidos
Página 1 de 1
[RESOLVIDO] Tocar som em script que exibe uma mensagem
Oi pessoal, acrescentei algumas linhas em um script feito pelo nosso amigo Marcos Schultz, o script que me refiro é o "Mensagem" que coloca uma mensagem de texto quando se aproxima de um determinado GameObject, e para de tocar quando se distancia, a minha intenção era tocar um audio junto com a mensagem exposta, esta façanha funcionou, mas o audio toca de forma estranha, fica tocando como se um loop estivesse ligado, mas não está ligado. O script é este aqui. Obs. já está com as linhas que acrescentei, Me ajudem por favor. Obrigado
- Código:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
public class Mensagem : MonoBehaviour
{
public AudioClip clip;
//public bool isPlayed = false;
public float volume;
AudioSource MensagemAudio;
public Text texto;
[Range(0.1f, 10f)] public float distancia;
private GameObject Jogador; //receber o objeto que tenha a tag Player
void Start()
{
texto.enabled = false;
Jogador = GameObject.FindWithTag("Player");
MensagemAudio = GetComponent <AudioSource> ();
}
void Update()
{
if (Vector3.Distance(transform.position, Jogador.transform.position)<distancia)
{
texto.enabled = true;
MensagemAudio.PlayOneShot(clip, volume);
}
else
{
texto.enabled = false;
}
}
}
Última edição por MarcosSchultz em Qua Jun 27, 2018 1:22 am, editado 3 vez(es) (Motivo da edição : Resolvido)
richardfalcos- Iniciante
- PONTOS : 2383
REPUTAÇÃO : -1
Respeito as regras :
Re: [RESOLVIDO] Tocar som em script que exibe uma mensagem
boa tarde,bom a void update é uma void d atualizaçao a cada segundo por isso enquanto o player continuar naquela distancia o audio vai continuar tocando, por isso voce deve criar uma uma boolean. pra checar se oaudio ja tocou,,
tente :
tente :
- Código:
bool jaTocou = false; //booleana
void Update()
{
if (!jaTocou) //se nao tocou
{
if (Vector3.Distance(transform.position, Jogador.transform.position) < distancia)
{
texto.enabled = true;
if (!MensagemAudio.isPlaying) //se nao tiver tocando,tocar,é usado pra evitar loops
{
MensagemAudio.PlayOneShot(clip, volume);
jaTocou = true; //quer dizer q ja tocou,e so pode repetir quando afastar e voltar dnovo
}
}
}
else
{
if (Vector3.Distance(transform.position, Jogador.transform.position) > distancia)
{
texto.enabled = false;
jaTocou = false;
}
}
}
Re: [RESOLVIDO] Tocar som em script que exibe uma mensagem
Buenas noites! o seu título será alterado pois ficou muito grande. Siga as instruções do brother acima, pois tocar som no Update não dá muito certo sem uma booleana para controle.richardfalcos escreveu:Oi pessoal, acrescentei algumas linhas em um script feito pelo nosso amigo Marcos Schultz, o script que me refiro é o "Mensagem" que coloca uma mensagem de texto quando se aproxima de um determinado GameObject, e para de tocar quando se distancia, a minha intenção era tocar um audio junto com a mensagem exposta, esta façanha funcionou, mas o audio toca de forma estranha, fica tocando como se um loop estivesse ligado, mas não está ligado. O script é este aqui. Obs. já está com as linhas que acrescentei, Me ajudem por favor. Obrigado
- Código:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
public class Mensagem : MonoBehaviour
{
public AudioClip clip;
//public bool isPlayed = false;
public float volume;
AudioSource MensagemAudio;
public Text texto;
[Range(0.1f, 10f)] public float distancia;
private GameObject Jogador; //receber o objeto que tenha a tag Player
void Start()
{
texto.enabled = false;
Jogador = GameObject.FindWithTag("Player");
MensagemAudio = GetComponent <AudioSource> ();
}
void Update()
{
if (Vector3.Distance(transform.position, Jogador.transform.position)<distancia)
{
texto.enabled = true;
MensagemAudio.PlayOneShot(clip, volume);
}
else
{
texto.enabled = false;
}
}
}
Abraço!
Re: [RESOLVIDO] Tocar som em script que exibe uma mensagem
Oi Pessoal, agradeço à todos, principalmente ao amigo Felipe Sousa, que se prontificou em me ajudar, fiz as modificações que ele sugeriu, creio que corretas, mas infelizmente do lado de cá surgiram outros erros: como por exemplo todas as linhas abaixo do "else" ficaram sublinhadas em vermelho, então para não ficar sem cabelos resolvi descartar a opção de associar o audio ao texto exibido por aproximação, resolvi de uma maneira mais burra colocando outro script separado com trigger para tocar o audio. Mais uma vez agradeço. Agora estou com outro problema no mesmo script: Preciso destruir, o texto em questão, quando o "Player" se distancia do "GameObjeto" que contém o script, fiz uma gambiarra que até funciona bem, mas no console aparece uma mensagem dizendo que o meu script continua tentando acessar texto que foi destruído. Como poderia resolver isto, Peço a gentileza de quem se prontificar em me ajudar que me instrua dentro script que coloquei logo abaixo, pois exite um Delay entre os nossos raciocínios. Agradeço imensamente o seu socorro. muito Obrigado
- Código:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
public class Mensagem : MonoBehaviour
{
public Text texto;
[Range(0.1f, 10f)] public float distancia;
private GameObject Jogador; //receber o objeto que tenha a tag Player
void Start()
{
texto.enabled = false;
Jogador = GameObject.FindWithTag("Player");
}
void Update()
{
if (Vector3.Distance(transform.position, Jogador.transform.position)<distancia)
{
texto.enabled = true;
if (Input.GetKeyDown(KeyCode.S))
//if (distancia > 10)
{
Destroy(texto);
}
}
else
{
texto.enabled = false;
}
}
}
richardfalcos- Iniciante
- PONTOS : 2383
REPUTAÇÃO : -1
Respeito as regras :
Re: [RESOLVIDO] Tocar som em script que exibe uma mensagem
antes da linha 41 e 26 verifique se o texto não é nulo
- Código:
if(texto != null)
Phph09- Profissional
- PONTOS : 3789
REPUTAÇÃO : 240
Idade : 19
Respeito as regras :
Re: [RESOLVIDO] Tocar som em script que exibe uma mensagem
RESOLVIDO, Agradeço imensamente aos amigos que me ajudaram, O console ficou caladinho. Obrigado Phph09, pra mim você foi um Phd. Valeu, até a próxima, espero em breve poder ajudar de alguma forma os outros.
richardfalcos- Iniciante
- PONTOS : 2383
REPUTAÇÃO : -1
Respeito as regras :
Re: [RESOLVIDO] Tocar som em script que exibe uma mensagem
Tópico resolvidoEste tópico está impedido de receber novos posts. Movido para "Tópicos resolvidos". |
Tópicos semelhantes
» [RESOLVIDO] Ajuda com Script de Mensagem
» [RESOLVIDO] Erro no Script tocar Audio
» [RESOLVIDO] Script deveria tocar som durante disparo, mas ao invés disso da erro.
» [RESOLVIDO] Mensagem UI
» [RESOLVIDO] mensagem na tela
» [RESOLVIDO] Erro no Script tocar Audio
» [RESOLVIDO] Script deveria tocar som durante disparo, mas ao invés disso da erro.
» [RESOLVIDO] Mensagem UI
» [RESOLVIDO] mensagem na tela
SchultzGames :: UNITY 3D :: Resolvidos
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos