Stratos: Punto de Encuentro de Desarrolladores

¡Bienvenido a Stratos!

Acceder

Foros





Ayuda con script de C# (Unity 3D)

Iniciado por SrPambolido, 08 de Agosto de 2017, 02:23:01 PM

« anterior - próximo »

SrPambolido

Tengo un problemilla con este script de C# en Unity, se supone que el jugador tiene que desaparecer al tocar a un enemigo, pero no lo hace, todo lo demás funciona bien, solo tengo ese pequeño contratiempo.


public class EnemyBehaviour : MonoBehaviour {

   private GameObject target;

   void Update () {
      target = GameObject.FindGameObjectWithTag ("Player");
      if (target.transform.position.x - transform.position.x >= 10.0f) {
         transform.Rotate (Vector3.forward * (Time.deltaTime * 60));
      }
   }

   void OnTriggerEnter (Collision Player) {
      Player.gameObject.SetActive (false);
   }
}

[EX3]

#1
Cita de: SrPambolido en 08 de Agosto de 2017, 02:23:01 PM
   void OnTriggerEnter (Collision Player) {
      Player.gameObject.SetActive (false);
   }
}
Tienes mal declarado el evento OnTriggerEnter. Este evento no recibe un Collision si no un Collider (y si no cuadra la declaración, Unity no lo va a llamar):
https://docs.unity3d.com/ScriptReference/MonoBehaviour.OnTriggerEnter.html

Lo siguiente es que te asegures de que el collider esta marcado como Trigger y de que el script este agregado en el GameObject que tiene el collider. Con eso debería funcionarte.

Salu2...

P.D.: Recomendación, yo comprobaría primero si el collider que recibe OnTriggerEnter es el Player. Ahora mismo estas asumiendo que es el Player pero ahí estas desactivando cualquier GameObject con collider que active el trigger.
José Miguel Sánchez Fernández
.NET Developer | Game Programmer | Unity Developer

Blog | Game Portfolio | LinkedIn | Twitter | Itch.io | Gamejolt






Stratos es un servicio gratuito, cuyos costes se cubren en parte con la publicidad.
Por favor, desactiva el bloqueador de anuncios en esta web para ayudar a que siga adelante.
Muchísimas gracias.