public GameObject jogador;
public float Velocidade = 5;
private MovimentoPersonagens meuMovimentoPersonagem;
// Use this for inicialization
void Start()
{
jogador = GameObject.FindWithTag("jogador");
int geraTipoZumbi = Random.Range(1, 28);
transform.GetChild(geraTipoZumbi).gameObject.SetActive(true);
meuMovimentoPersonagem = GetComponent<MovimentoPersonagens>();
}
void FixedUpdate()
{
float distancia = Vector3.Distance(transform.position, jogador.transform.position);
Vector3 direcao = jogador.transform.position - transform.position;
meuMovimentoPersonagem.Rotacionar(direcao);
if (distancia > 2.5)
{
meuMovimentoPersonagem.Movimentar(direcao, Velocidade);
GetComponent<Animator>().SetBool("Atacando", false);
}
else
{
GetComponent<Animator>().SetBool("Atacando", true);
}
}
void AtacaJogador()
{
int dano = Random .Range(20, 30);
jogador.GetComponent<ControlaJogador>().TomarDano(dano);
}
}
MOVIMENTO PERSONAGENS
public class MovimentoPersonagens : MonoBehaviour
{
private Rigidbody meuRigidbody;
void awake()
{
meuRigidbody = GetComponent<Rigidbody>();
}
public void Movimentar(Vector3 direcao, float velocidade)
{
meuRigidbody.MovePosition(meuRigidbody.position + direcao.normalized * velocidade * Time.deltaTime);
}
public void Rotacionar (Vector3 direcao)
{
Quaternion novaRotacao = Quaternion.LookRotation(direcao);
meuRigidbody.MoveRotation(novaRotacao);
}
}