Unity Spain

Mesa de ayuda => Unity3D => Scripting => Mensaje iniciado por: Lucky-chan en Marzo 15, 2019, 03:21:23 PM

Título: [Solucionado n_n]Problema enemigo no muere
Publicado por: Lucky-chan en Marzo 15, 2019, 03:21:23 PM
hola, buenos días, hoy tengo otro problema, mi script dice que cuando el jugador salte sobre el enemigo este muera y reproduzca corrutina que ejecute una partícula de muerte, el problema es que por alguna razón mi enemigo no muere cuando el jugador cae sobre el, que podría estar mal en mi script?
 

   void OnTriggerEnter2D(Collider2D col)
    {
        if (col.gameObject.tag == "Player")
        {
            float yOffset = 0.6f;
            if (transform.position.y + yOffset < col.transform.position.y)
            {
                StartCoroutine(FXCoroutine());
            }
        }
    }
    private IEnumerator FXCoroutine()
    {
        ParticleChan.Play();
        while (ParticleChan.IsAlive())
        {
            yield return null;
        }
        Destroy(gameObject);
    }
}

 
a como lo veo no hay ningún error
Título: [Solucionado n_n]Problema enemigo no muere
Publicado por: Alex en Marzo 15, 2019, 07:45:56 PM
Prueba a usar:
 
Destroy (this.gameObject);
Título: [Solucionado n_n]Problema enemigo no muere
Publicado por: Samusan en Marzo 15, 2019, 09:08:34 PM
Buenas,
 
He probado el script en mi PC y funciona perfectamente (solo he quitado el while y la referencia a ParticleChan). Pueden estar pasando dos cosas :
 
1.- ParticleChan.IsAlive() siempre se cumple y nunca sale del bucle.
 
2.- Falta algo de la configuración del inspector. Comprueba que el Player sea un Trigger y que tenga un rigidbody, revisa que tenga el tag asignado, que ambos sprites tengan colisiones etc.
 
Adjunto un pantallazo de como tengo yo el inspector :
 
Player
 

 
Enemy : El script "Enemy" es el código que has pasado.
 

 
Cualquier duda nos comentas.
 
Un saludo y ánimo :)
Título: [Solucionado n_n]Problema enemigo no muere
Publicado por: Lucky-chan en Marzo 16, 2019, 03:11:24 AM
Cita de: Samusan date=1552680514Buenas,
   
   
      He probado el script en mi PC y funciona perfectamente (solo he quitado el while y la referencia a ParticleChan). Pueden estar pasando dos cosas :
   
   
      1.- ParticleChan.IsAlive() siempre se cumple y nunca sale del bucle.
   
   
      2.- Falta algo de la configuración del inspector. Comprueba que el Player sea un Trigger y que tenga un rigidbody, revisa que tenga el tag asignado, que ambos sprites tengan colisiones etc.
   
   
      Adjunto un pantallazo de como tengo yo el inspector :
   
   
      Player
   
   
      
   
   
      Enemy : El script "Enemy" es el código que has pasado.
   
   
      
   
   
      Cualquier duda nos comentas.
   
   
      Un saludo y ánimo :)
   


buenas noches,  muchas gracias, en seguida revisaré esto a ver si es eso lo que me causa problemas, gracias por tu ayuda (n_n)/
 
Edito: Solucionado, de hecho el comprobador  de while estaba provocando un bucle, al quitarlo funciona perfectamente :D
Título: [Solucionado n_n]Problema enemigo no muere
Publicado por: Lucky-chan en Marzo 16, 2019, 03:50:09 AM



   

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
//scrip made by Vergil and Lucky-chan, enjoy it n_n!
public class enemy : MonoBehaviour
{
    public float maxSpeed = 5f;
    public float Speed = 5f;
    public ParticleSystem ParticleChan;
    private bool Particle;// not necesary if u will use the script like this, but there it is if u need it n_n)/
    public float Seconds; //how many secs to wait for the particle to play
    public AudioSource RIP;//dead sound, not necesary though :P
    private Rigidbody2D rb2d;
    // Start is called before the first frame update
    void Start()
    {
        rb2d = GetComponent<Rigidbody2D>();
    }
        // Update is called once per frame
        void FixedUpdate()
    {
        rb2d.AddForce(Vector2.right * Speed);
        float limitedSpeed = Mathf.Clamp(rb2d.velocity.x, -maxSpeed, maxSpeed);
        rb2d.velocity = new Vector2(limitedSpeed, rb2d.velocity.y);
        if(rb2d.velocity.x > -0.01f && rb2d.velocity.x < 0.01f)
        {
            Speed = -Speed;
            rb2d.velocity = new Vector2(Speed, rb2d.velocity.y);
        }
        if (Speed < 0)
        {
            transform.localScale = new Vector3(5F, 5F, 5F);
        } else if (Speed > 0){
            transform.localScale = new Vector3(-5F, 5F, 5F);
        }
    }
    void OnTriggerEnter2D(Collider2D col)
    {
        if (col.gameObject.tag == "Player")
        {
            float yOffset = 0.53f;
            if (transform.position.y + yOffset < col.transform.position.y)
            {
                StartCoroutine(FXCoroutine());
            }
        }
    }
    private IEnumerator FXCoroutine()
    {
        ParticleChan.Play();
                   
            RIP.Play(); //i suggest to put the audio source out of the object that will be destro***...                                                                            //if u can fix it  then do it xD for me is ok like that
            yield return new WaitForSecondsRealtime(Seconds);
        Destroy(gameObject);
    }
}

   
       
   

[/quote]
 
adjunto la script completa por si alguien la quiere/necesita ;P
Título: [Solucionado n_n]Problema enemigo no muere
Publicado por: francoe1 en Marzo 16, 2019, 04:28:42 PM
Cita de: Lucky-chan date=1552704609adjunto la script completa por si alguien la quiere/necesita ;P
   


Solo quiero ajustar algo de este comentario por que lo vengo leyendo hace varios años y me enferma.
 
Script significa GUIÓN y es MASCULINO;
Título: [Solucionado n_n]Problema enemigo no muere
Publicado por: Lucky-chan en Marzo 16, 2019, 07:51:46 PM
ya tenía que salir un payaso de estos...
Título: [Solucionado n_n]Problema enemigo no muere
Publicado por: Samusan en Marzo 17, 2019, 08:10:19 PM
.
Título: [Solucionado n_n]Problema enemigo no muere
Publicado por: lightbug en Marzo 17, 2019, 09:54:32 PM
Cita de: Lucky-chan date=1552762306ya tenía que salir un payaso de estos...
   


Sí, por vos lo decís? deberías ser más abierto/a, es solo un consejo (y además tiene razón).
Título: [Solucionado n_n]Problema enemigo no muere
Publicado por: Lucky-chan en Marzo 18, 2019, 08:43:08 PM
Cita de: lightbug date=1552856072Sí, por vos lo decís? deberías ser más abierto/a, es solo un consejo (y además tiene razón).
   


pff te ofende que le diga payaso a tu novio? 
 
si no te gusta leer algo o te molesta ignóralo...
 
aparte esto no es Reddit, no comentes nada irrelevante
Título: [Solucionado n_n]Problema enemigo no muere
Publicado por: lightbug en Marzo 18, 2019, 09:43:14 PM
Cita de: Lucky-chan date=1552938188pff te ofende que le diga payaso a tu novio? 
   
   
      si no te gusta leer algo o te molesta ignóralo...
   
   
      aparte esto no es Reddit, no comentes nada irrelevante
   


Mi novio y yo pensamos que si seguís preguntando casi una vez por día en lo referente a problemas con tu juego (o lo que sea que estás haciendo) vas a terminar haciéndolo solo con el esfuerzo de la gente de por aquí, así que no te conviene andar llamándonos payasos por cualquier cosa (quedate tranquila, viene alguno como vos de vez en cuando) ... quizás te convenga empezar a leerte un poco más la doc, está bien fácil.
 
 
 
PD: Y no, justamente esto no es reddit  ...
Título: [Solucionado n_n]Problema enemigo no muere
Publicado por: francoe1 en Marzo 19, 2019, 01:53:46 AM
@lightbug Las leyendas se defienden... 
 
 
Título: [Solucionado n_n]Problema enemigo no muere
Publicado por: Lucky-chan en Marzo 19, 2019, 07:56:42 PM
@lightbug uso los foros como ultimo recurso .-.
 
aparte eso no es relevante, escribes esto solo para intentar molestar, es patético e inmaduro, reitero si no te gusta leer algo o te molesta ignóralo...
Título: [Solucionado n_n]Problema enemigo no muere
Publicado por: francoe1 en Marzo 19, 2019, 09:21:37 PM
Cita de: Lucky-chan date=1553021802@lightbug uso los foros como ultimo recurso .-.
   
   
      aparte eso no es relevante, escribes esto solo para intentar molestar, es patético e inmaduro, reitero si no te gusta leer algo o te molesta ignóralo...
   


La escritura de las personas es importante. Estás nombrando de manera errónea algo que dentro del contexto del topic es el centro.

Te aseguro que el 30% de las personas que entran y ven "la script" directamente salen sin intentar ayudar.
 
¿Como último recurso utilizas el foro? ... Pero estoy viendo topic de tu persona por todo el foro consultando problemáticas relacionadas a programación básica. 
 
Mi recomendación. Aprende a programar, busca libros o videos en YT sobre C# y POO para entender los conceptos básicos. 

 
Título: [Solucionado n_n]Problema enemigo no muere
Publicado por: pioj en Marzo 20, 2019, 04:05:42 AM
¡HAYA PAZ, SEÑORES!
 
@Lucky-chan, no te voy a pedir que te disculpes, pero ten en cuenta que has empezado tú, al no ignorar el comentario tonto de @francoe1. 
 
 
 
Dicho ésto y terminada la cizaña, vayamos a tratar de resolver el problema de este usuario. ¿Os parece? 
 
Me da la sensación de que no estás sacando la posición final del impacto, donde determinas que "chafa" al enemigo. En lugar de eso, parece que estás calculando siempre una diferencia, y que esa posición final no tiene por qué cumplirse...
 
 
 
Es una especulación, pero podría ser relevante, míratelo bien.
 
 
 
P.D. Para los que no seáis de América Latina, aunque no sea correcto, la jerga po***r usa el término "script" como si fuera una palabra femenina. Acostumbraros, e ya.
Título: [Solucionado n_n]Problema enemigo no muere
Publicado por: Lucky-chan en Marzo 20, 2019, 02:13:25 PM
Cita de: francoe1 date=1553026897La escritura de las personas es importante. Estás nombrando de manera errónea algo que dentro del contexto del topic es el centro.

      Te aseguro que el 30% de las personas que entran y ven "la script" directamente salen sin intentar ayudar.
   
   
      ¿Como último recurso utilizas el foro? ... Pero estoy viendo topic de tu persona por todo el foro consultando problemáticas relacionadas a programación básica. 
   
   
      Mi recomendación. Aprende a programar, busca libros o videos en YT sobre C# y POO para entender los conceptos básicos. 

       
   


de hecho estoy totalmente de acuerdo, lo que me molesto en realidad es la parte "me enferma" sabes? 
 
y de hecho eso he estado haciendo, mas bien gracias a YT es que puedo programar prácticamente sola, lo que pasa es que aún no comprendo las sintaxis de algunos metodos o variables...
 
Cita de: pioj date=1553051142¡HAYA PAZ, SEÑORES!
   
   
      @Lucky-chan, no te voy a pedir que te disculpes, pero ten en cuenta que has empezado tú, al no ignorar el comentario tonto de @francoe1. 
   
   
       
   
   
      Dicho ésto y terminada la cizaña, vayamos a tratar de resolver el problema de este usuario. ¿Os parece? 
   
   
      Me da la sensación de que no estás sacando la posición final del impacto, donde determinas que "chafa" al enemigo. En lugar de eso, parece que estás calculando siempre una diferencia, y que esa posición final no tiene por qué cumplirse...
   
   
       
   
   
      Es una especulación, pero podría ser relevante, míratelo bien.
   
   
       
   
   
      P.D. Para los que no seáis de América Latina, aunque no sea correcto, la jerga po***r usa el término "script" como si fuera una palabra femenina. Acostumbraros, e ya.
   


bueno eso ultimo es cierto, al menos en la universidad en la cual estudio todos usan el termino script como femenino...
 
y gracias por la ayuda, pero este problema ya está resuelto :P
Título: [Solucionado n_n]Problema enemigo no muere
Publicado por: lightbug en Marzo 20, 2019, 03:28:59 PM
Cita de: Lucky-chan date=1553021802escribes esto solo para intentar molestar, es patético e inmaduro,
   


Yo no soy patético e inmaduro! podré ser mentiroso, puerco, idiota, patético, inmaduro... pero nunca una estrella de ***o.
Título: [Solucionado n_n]Problema enemigo no muere
Publicado por: Samusan en Marzo 20, 2019, 03:36:38 PM
Cita de: lightbug date=1553092139Yo no soy patético e inmaduro! podré ser mentiroso, puerco, idiota, patético, inmaduro... pero nunca una estrella de ***o.
   


10/10