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
Prueba a usar:
Destroy (this.gameObject);
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 :)
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
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
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;
ya tenía que salir un payaso de estos...
.
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).
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
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 ...
@lightbug Las leyendas se defienden...
@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...
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.
¡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.
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
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.
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