Unity Spain

Post Antiguos => General (Antiguo) => Mensaje iniciado por: brok en Noviembre 08, 2015, 03:37:34 PM

Título: ¿Como restablezco la vida para ai 2?
Publicado por: brok en Noviembre 08, 2015, 03:37:34 PM
Resulta que cuando duplico el ai la vida con el slider no funciona pero no funciona el restar vida al enemigo y nunca lo mato ¿que puedo hacer?using UnityEngine;
using System.Collections;
using UnityEngine.UI;
using UnityEngine.EventSystems;
public class vidaPlayerAI : MonoBehaviour {
    public float vidaEnemigo = 100f;
        public GameObject payerai;
    public Slider enemigoSlider;
    public void RestarVidaEnemigo()
    {        vidaEnemigo -= 5f;
        enemigoSlider.value = vidaEnemigo;
                if (vidaEnemigo <= 0f )
        {
            Destroy(payerai);
            
        }
        
        
    }
   
    
}
Título: ¿Como restablezco la vida para ai 2?
Publicado por: brok en Noviembre 08, 2015, 04:27:49 PM
Asin el slider se descrementa bien, pero el enmigo no muere sus variable vida no disminulle y no llega hacer nada de las hordenes que le doy con otros script.using UnityEngine;
using System.Collections;
using UnityEngine.UI;
using UnityEngine.EventSystems;
public class vidaPlayerAI : MonoBehaviour {
    public float vidaEnemigo = 100f;
        public GameObject playerai;
    public Slider enemigoSlider;
    public void RestarVidaEnemigo()
    {        vidaEnemigo -= 5f;
        enemigoSlider.value = vidaEnemigo;
                if (vidaEnemigo <= 0f )
        {
            Destroy(playerai);
            enemigoSlider.value = vidaEnemigo + 100;
                   }
        
        
    }
   
    
}
Título: ¿Como restablezco la vida para ai 2?
Publicado por: Feider en Noviembre 09, 2015, 10:54:20 AM
Hola ^^.Soy novato aún, pero quizá funcione lo siguiente:Lo primero me doy cuenta de que cuando el enemigo fallece, matas al jugador (¿?)... O tal ve entendí mal... 
En cualquier caso, cuando tu enemigo muere le pones la vida a 100 otra vez... Así nunca morirá, un frame a lo mejor se ejecuta incluso hasta 60 veces/segundo (Creo).Imagino que eso será parte de tu script y que harás llamada a través de un evento o del update cuando se de a un botón, por ejemplo. (no lo sé).Teniendo en cuenta eso prueba a hacer una cosa. (A mi en su momento me dio error, quizá fue que probé mal y pues, una ventaja):Crea un evento tal que así:
public delegate MuereSlider(); public static event MuereSlider SinVida;https://unity3d.com/es/learn/tutorials/modules/intermediate/scripting/eventshttps://msdn.microsoft.com/es-es/library/aa288460(v=vs.71).aspx Añades el evento al propio enemigo en una función en el que lo destruyas o en el que hagas que haga lo que sea. "¿Y si quiero varios?". Los eventos son compartidos en Unity por lo que veo, pero que no cunda el pánico, lo propio sería darles una ID para saber cuál tiene que morir. De todas formas es una idea, no sé si te servirá. Pero en principio, creo que sólo el script del gameobject puede destruir el gameobject. Aunque aún tengo que hacer pruebas con eso. Un saludo y ánimo.
 
Título: ¿Como restablezco la vida para ai 2?
Publicado por: brok en Noviembre 09, 2015, 04:30:30 PM
ya lo he solucionado pero ahora tengo otro problema con otro script Destroy(GameObject.FindGameObjectWithTag("Enemigo"));