Noticias

¡RECUERDA QUE SI ERES UN NUEVO USUARIO, DEBES PRESENTARTE PARA PODER PUBLICAR MENSAJES! | TENEMOS CANAL OFICIAL DE TELEGRAM: t.me/unity3dspain

Vida de personaje y enemigo

Iniciado por halpe, Octubre 18, 2017, 02:23:28 PM

Tema anterior - Siguiente tema
Hola si necesito ayuda para asignar cantidad de vida a un personaje y a los enemigos. Además si saben como hacer para bajarle vida tambien les agradeceria


public class HealthActor : MonoBehaviour
{
[SerializeField]
private int MaxHealth = 100;
internal int Current { get; private set; }
internal bool IsDead { get; private set; }
internal evenct Action OnDead = delegate {};
private void Start()
     {
   Current = MaxHealth;
     }
internal void ApplyDamage(int amount)
    {
   Current -= amount;
   if(Current <= )
        {
            OnDead.Invoke();
            IsDead = true;
         }
        Current = Mathf.Clamp(Current, , MaxHealth);                
    }
                       
    internal void ApplyCure(int amount)
    {
      Current -= amount;
      Current = Mathf.Clamp(Current, , MaxHealth);      
    }
}

 
Analiza el código y trata de copiar las cosas que necesitas...

asinar vida: puedes incluir una variable "float" o "int" dependiendo si quieres vida como "porcentaje" o "por toques".
 

         
public class personajeOLoQueSea.....
   public float life = 100f;// "f" de float
   //o sino...
   public int toques = 3;
   //si son variables public podras "editar" el valor desde el editor y las variables podran ser accesibles y modificables desde "fuera"
//lo idea seria "private":
private float life = 99.9f;// por no poner 100
// y luego podrias tener una funcion "Hit" algo asi
public void Hit(float damage) {//public para poder "llamar"(usar) a esa funcion desde fuera
   life = life - damage;
}
y no se como atacan los enemigos, disparan o lanzan algo? hacen daño al tocar? con lo cual no puedo darte mucha mas ayuda, pero tendrias que llamar a la funcion "hit" desde algun lado, al suceder una "colision" con una bala o enemigo... con algun raycast o spherecast... o quizas en un onCollisionEnter... y entonces llamar al metodo hit

 
esto solo es un ejemplo hay mil formas de hacerlo dependiendo las especificaciones de tu juego, que tipo de juego es, como son las mecanicas....
 
de todas formas deverias mirarte algunos tutoriales para ir aprendiendo lo basico, ... y despues te recomiendo aprender a usar bien raycast/spherecast, que te da mucha mas libertad que onCollisionEnter (se usa para fisicas/colisiones)

Cita de: halpe date=1508329408Además si saben como hacer para bajarle vida tambien les agradeceria
   


Si, por supuesto, el proceso se llama substracción .
 

vida -= cantidad.

 
Despues lo que hagas con la variable vida, o lo que implica que dicha variable llegue a cero es otra cosa.

Cita de: lightbug date=1508339501Si, por supuesto, el proceso se llama substracción .
   
   

vida -= cantidad.

   
      Despues lo que hagas con la variable vida, o lo que implica que dicha variable llegue a cero es otra cosa.
   


jejejeje 
 
no se que pasa cuando llega a cero...
 
...pero si esta por debajo de cero yo suelo encender la estufa..
 
 

Cita de: Igor date=1508420048 
   
   
      ...pero si esta por debajo de cero yo suelo encender la estufa..
   
   
       
   


últimamente te veo sembrado @Igor 

Cita de: Igor date=1508420048...pero si esta por debajo de cero yo suelo encender la estufa..
   


Jajaja ... yo en cero:
 


   
eature=oembed" width="459">

 
 

Etiquetas: