Foros - Stratos

Stratos => Principiantes => Mensaje iniciado por: SrPambolido en 08 de Agosto de 2017, 02:23:01 PM

Título: Ayuda con script de C# (Unity 3D)
Publicado por: SrPambolido en 08 de Agosto de 2017, 02:23:01 PM
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);
   }
}
Título: Re:Ayuda con script de C# (Unity 3D)
Publicado por: [EX3] en 09 de Agosto de 2017, 01:12:21 AM
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.