Dificuldades em destruir ou desativar GameObject...
+2
Phph09
Engine
6 participantes
Página 1 de 1
Dificuldades em destruir ou desativar GameObject...
- Código:
using UnityEngine;
using System.Collections;
[RequireComponent(typeof(AudioSource))]
public class Ativar : MonoBehaviour {
public GameObject Inimigo;
private int TempoTotal = 6;
private float TempoAtual;
public AudioClip AudioDoSusto;
// Use this for initialization
void Start () {
Inimigo.SetActive(false);
}
// Update is called once per frame
void Update () {
}
void OnTriggerEnter(Collider other)
{
audio.PlayOneShot (audio.clip);
if (other.gameObject.tag == "Player")
{
if (TempoAtual == 0) {
Inimigo.SetActive(true);
if (TempoAtual <= TempoTotal) {
TempoAtual += Time.deltaTime * 2;
}else if (TempoAtual >= TempoTotal)
{
TempoAtual = 0;
Inimigo.SetActive(false);
Destroy(gameObject,5);
}
}
}
}
}
Olá este script...Quando o meu player entra em um trigger automaticamente surgir na tela um game Object com áudio..O problema é que depois de ser ativado ele ainda fica la (o Game Object não some..e o áudio se passar novamente pelo ''trigger'' ainda surge)...Eu gostaria que alguém me ajudasse neste script para que quando passasse ex:5 segundos apos entrar no "trigger"ele sumisse..E estou com dificuldades em aonde devo colocar o ''Destroy(gameObject,5);"
Ou se é necessário, porque ha outra forma só que apenas desativaria o game Object da cena...Porém estou com muita
Dificuldades...
Engine- Iniciante
- PONTOS : 2925
REPUTAÇÃO : 2
Idade : 26
Áreas de atuação : Web Design
Respeito as regras :
Re: Dificuldades em destruir ou desativar GameObject...
Acho que nesse caso a void OnTriggerStay seria mais eficaz
Phph09- Profissional
- PONTOS : 3788
REPUTAÇÃO : 240
Idade : 19
Respeito as regras :
Re: Dificuldades em destruir ou desativar GameObject...
Bom dia cara! o esquema de tempo é necessário? o que seria esse tempo total e tals? é só pra destruir? pois existem formas mais simples pra isso.Engine escreveu:
- Código:
using UnityEngine;
using System.Collections;
[RequireComponent(typeof(AudioSource))]
public class Ativar : MonoBehaviour {
public GameObject Inimigo;
private int TempoTotal = 6;
private float TempoAtual;
public AudioClip AudioDoSusto;
// Use this for initialization
void Start () {
Inimigo.SetActive(false);
}
// Update is called once per frame
void Update () {
}
void OnTriggerEnter(Collider other)
{
audio.PlayOneShot (audio.clip);
if (other.gameObject.tag == "Player")
{
if (TempoAtual == 0) {
Inimigo.SetActive(true);
if (TempoAtual <= TempoTotal) {
TempoAtual += Time.deltaTime * 2;
}else if (TempoAtual >= TempoTotal)
{
TempoAtual = 0;
Inimigo.SetActive(false);
Destroy(gameObject,5);
}
}
}
}
}
Olá este script...Quando o meu player entra em um trigger automaticamente surgir na tela um game Object com áudio..O problema é que depois de ser ativado ele ainda fica la (o Game Object não some..e o áudio se passar novamente pelo ''trigger'' ainda surge)...Eu gostaria que alguém me ajudasse neste script para que quando passasse ex:5 segundos apos entrar no "trigger"ele sumisse..E estou com dificuldades em aonde devo colocar o ''Destroy(gameObject,5);"
Ou se é necessário, porque ha outra forma só que apenas desativaria o game Object da cena...Porém estou com muita
Dificuldades...
Abraço!
Re: Dificuldades em destruir ou desativar GameObject...
Uma dúvida.. .existe alguma forma de destruir um objeto sem que o player não precise de um Collíder..por que com OnTrigerEnter não da..
tom ramber- Avançado
- PONTOS : 3139
REPUTAÇÃO : 12
Idade : 37
Áreas de atuação : Blender, Unity
Respeito as regras :
Re: Dificuldades em destruir ou desativar GameObject...
Voce pode fazer assim
- Código:
using UnityEngine;
using System.Collections;
using UnityEngine.UI;
[RequireComponent(typeof(AudioSource))]
public class Grito : MonoBehaviour {
public GameObject Inimigo;
public AudioClip grito;
AudioSource emissorSom;
// Use this for initialization
void Start () {
Inimigo.SetActive(false);
}
void OnTriggerEnter(Collider other){
if(other.gameObject.tag == "Player"){
Inimigo.SetActive(true);
GetComponent<AudioSource> ().PlayOneShot (grito);
StartCoroutine(DestroirObjeto());
}
}
IEnumerator DestroirObjeto(){
yield return new WaitForSeconds (5f);
Destroy (gameObject);
Destroy (Inimigo);
}
}
Re: Dificuldades em destruir ou desativar GameObject...
Se eu entendi bem, você quer que um gameObject apareça junto com um audio e depois saia, isso ? Tem formas mais simples de fazer isso... Deixa eu tentar te ajudar :Engine escreveu:
- Código:
using UnityEngine;
using System.Collections;
[RequireComponent(typeof(AudioSource))]
public class Ativar : MonoBehaviour {
public GameObject Inimigo;
private int TempoTotal = 6;
private float TempoAtual;
public AudioClip AudioDoSusto;
// Use this for initialization
void Start () {
Inimigo.SetActive(false);
}
// Update is called once per frame
void Update () {
}
void OnTriggerEnter(Collider other)
{
audio.PlayOneShot (audio.clip);
if (other.gameObject.tag == "Player")
{
if (TempoAtual == 0) {
Inimigo.SetActive(true);
if (TempoAtual <= TempoTotal) {
TempoAtual += Time.deltaTime * 2;
}else if (TempoAtual >= TempoTotal)
{
TempoAtual = 0;
Inimigo.SetActive(false);
Destroy(gameObject,5);
}
}
}
}
}
Olá este script...Quando o meu player entra em um trigger automaticamente surgir na tela um game Object com áudio..O problema é que depois de ser ativado ele ainda fica la (o Game Object não some..e o áudio se passar novamente pelo ''trigger'' ainda surge)...Eu gostaria que alguém me ajudasse neste script para que quando passasse ex:5 segundos apos entrar no "trigger"ele sumisse..E estou com dificuldades em aonde devo colocar o ''Destroy(gameObject,5);"
Ou se é necessário, porque ha outra forma só que apenas desativaria o game Object da cena...Porém estou com muita
Dificuldades...
- Código:
using UnityEngine;
using System.Collections;
[RequireComponent(typeof(AudioSource))]
public class Ativar : MonoBehaviour {
public GameObject inimigoP;
public float tempoAtual =0; // o tempo que atual do cronometro
public float tempoMinimo =2; //o tempo minimo para sumir o game object
public bool ativarCronometro; // bool para ativar o cronometro
public AudioClip AudioDoSusto;
// Use this for initialization
void Start () {
ativarCronometro = false;
inimigoP.SetActive(false);
}
// Update is called once per frame
void Update () {
if(ativarCronometro == true){
tempoAtual += Time.deltaTime;
if(tempoAtual >= tempoMinimo){
inimigoP.SetActive(false);
Destroy(inimigoP);
}
}
void OnTriggerEnter(Collider other)
{
audio.PlayOneShot (audio.clip);
if (other.gameObject.tag == "Player")
ativarCronometro = true;
}
}
}
Se tiver erros, me avise que eu conserto, fiz pelo celular ;-;
ruanzikaad- Mestre
- PONTOS : 3187
REPUTAÇÃO : 47
Idade : 24
Respeito as regras :
Tópicos semelhantes
» [DUVIDA] Como destruir um GameObject (cubo etc...) sem destruir seus "afilhados"
» Mobile: dificuldades
» Não consigo desativar script de gameObject (C#)
» ERRO POR CONTA DE REFERÊNCIAS APÓS DESTRUIR GAMEOBJECT
» Como ativar e desativar um gameObject com uma tecla
» Mobile: dificuldades
» Não consigo desativar script de gameObject (C#)
» ERRO POR CONTA DE REFERÊNCIAS APÓS DESTRUIR GAMEOBJECT
» Como ativar e desativar um gameObject com uma tecla
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos