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 (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
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í)...
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)