Unity Spain

Post Antiguos => General (Antiguo) => Mensaje iniciado por: eliasdixon en Enero 30, 2016, 07:08:49 AM

Título: vida del personaje
Publicado por: eliasdixon en Enero 30, 2016, 07:08:49 AM
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;
   }
}

  
Título: vida del personaje
Publicado por: juanma_teso en Enero 30, 2016, 10:03:57 AM
Tienes que saber cuándo el enemigo está lo suficientemente cerca del jugador para quitarle vida, se puede hacer midiendo la distancia (http://docs.unity3d.com/ScriptReference/Vector3-sqrMagnitude.html) entre los dos o con triggers (http://docs.unity3d.com/ScriptReference/MonoBehaviour.OnTriggerStay.html), 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 (https://msdn.microsoft.com/es-es/library/0f66670z.aspx). Con estos ejemplos puedes intentar sacar algo
Título: vida del personaje
Publicado por: Null en Enero 30, 2016, 08:03:25 PM
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í)...
 
Título: vida del personaje
Publicado por: leocub58 en Enero 30, 2016, 09:33:45 PM
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.}}}
Título: vida del personaje
Publicado por: Arthure en Enero 30, 2016, 11:03:30 PM
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)