Unity Spain

Post Antiguos => General (Antiguo) => Mensaje iniciado por: Pedro en Mayo 12, 2018, 10:22:12 AM

Título: Problema con Recogida de Objectos
Publicado por: Pedro en Mayo 12, 2018, 10:22:12 AM

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
public class Agua : MonoBehaviour {
 
    GameObject player;
    public GameObject Water;
 
    void Start()
    {
        player = GameObject.FindGameObjectWithTag("Player");
    }
    // Update is called once per frame
    void Update()
    {
    }
    public void OnTriggerEnter(Collider other)
    {
        if (other.gameObject == player)
        {
            RecogerAgua();
        }
    }
        void RecogerAgua()
        {
            if (Input.GetKeyDown(KeyCode.E))
            {
                Water.SetActive(false);
            }
        }
   
}

 
Hola a todos :D estoy intentando crear un script para recoger objetos al pulsar E pero al ponerlo en unity y darle a play no ocurre nada, sabrian decirme por que? aqui os dejo el script.
 
 
Título: Problema con Recogida de Objectos
Publicado por: Igor en Mayo 12, 2018, 12:34:09 PM
OnTiggerEnter solo se "dispara" en el preciso instante en que entras en ese trigger.....  dura solo un frame... y tiene que coincidir que le des a la "E" en ese frame para cojer el agua.... lo cual va a ser casi imposible....
 
 
 
en vez de OnTriggerEnter prueva con "OnTriggerStay"
Título: Problema con Recogida de Objectos
Publicado por: Pedro en Mayo 12, 2018, 01:36:31 PM
Cita de: Igor date=1526121249OnTiggerEnter solo se "dispara" en el preciso instante en que entras en ese trigger.....  dura solo un frame... y tiene que coincidir que le des a la "E" en ese frame para cojer el agua.... lo cual va a ser casi imposible....
   
   
       
   
   
      en vez de OnTriggerEnter prueva con "OnTriggerStay"


Gracias Funciono
Título: Problema con Recogida de Objectos
Publicado por: lightbug en Mayo 12, 2018, 05:35:12 PM
es exactamente lo que dijo @Igor, como variante o para agregar si querés podés sensar el estado con una simple bool, cuando se da Enter se pone en true, cuando se da Exit se pone en false, la diferencia entre usar esto y usar stay viene con dos ventajas: 1 - no se llama una y otra vez a Stay (que en tu caso puede resultar innecesario), 2- controlas el momento de entrada y salida, por ej cuando entras reproducis una animación y cuando salís otra.
 
Saludos