Noticias

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

vida del personaje

Iniciado por eliasdixon, Enero 30, 2016, 07:08:49 AM

Tema anterior - Siguiente tema
buenas gente, tengo una duda por ahi me den una mano con esto, es algo sencillo y mucha programacion no se pero buenotengo un script de ia sencilla... y lo q quiero es q el persona al acercarce quite vida y te matecomo podria hacer?esta es la script del enemigo para q te siga... 
using UnityEngine;
using System.Collections;

public class Seguir : MonoBehaviour {

public Transform m_Jugador;

   // Use this for initialization
   void Start ()
   {

   }

   // Update is called once per frame
   void Update () {
   GetComponent<NavMeshAgent>().destination = m_Jugador.position;
   }
}

  

Tienes que saber cuándo el enemigo está lo suficientemente cerca del jugador para quitarle vida, se puede hacer midiendo la distancia entre los dos o con triggers, luego hacer una función en algún script de tu jugador que le reste vida, ha de ser pública y si quieres que le quite diferente vida según el enemigo tiene que llevar parámetros. Con estos ejemplos puedes intentar sacar algo

Mucho de programación todavía no sé, pero si sirve de algo lo que te pueda decir...

Prueba a ponerle un collider como Trigger al Player como dice el otro compañero, y que cuando el enemigo esté dentro de ese collider, active su animación de ataque, y que le reste la vida al script del player.

Prueba a usar tags y usar las funciones OnTriggerEnter() y OnTriggerExit()
(creo que eran así)...
 

Enero 30, 2016, 09:33:45 PM #3 Ultima modificación: Enero 30, 2016, 09:36:00 PM por leocub58
Eso es muy chapuzero.En mi caso yo lo haría con Vector3.Distance es muy sencillo de utilizar.CÓDIGO EN JAVASCRIPTprivate var timer : float = 1; //Creamos una variable privada llamada "timer"function Update () {if(Vector3.Distance(transform.position, JUGADOR.transform.position) < 5){ //si la distancia entre el objeto que tiene el script y el jugador es menor a 5 se ejecuta lo siguientetimer -= Time.deltaTime; //si la distancia es menor a 5 el timer va a ir bajandoif(timer <= 0){ //si el timer es menor a 0 se ejecuta lo siguientetimer = 1; //el timer se pone en 1JUGADOR.GetComponent("Scriptdevida").vida -= 5; //se le quita 5 de vida al script de vida de tu personaje.}}}

mmmm tengo curiosidad ... trabajais a comision para mi oculista ? xDDD es que esos Updates me han jodido la vista (un poquito mas de lo que la tenia)

Etiquetas: