Ao implementar o codigo, o personagem utilizando o novo script para de se movimentar. Sei que deve ser algo pequeno, mas nao consigo descobrir.
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class MovimentaPersonagem : 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);
}
}
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class ControlaInimigo : MonoBehaviour
{
public GameObject Jogador;
public float Velocidade = 5;
private Rigidbody rigidbodyInimigo;
private Animator animatorInimigo;
private MovimentaPersonagem movimentaInimigo;
// Start is called before the first frame update
void Start()
{
Jogador = GameObject.FindWithTag("Jogador");
int geraTipoZumbi = Random.Range(1, 28);
transform.GetChild(geraTipoZumbi).gameObject.SetActive(true);
rigidbodyInimigo = GetComponent<Rigidbody>();
animatorInimigo = GetComponent<Animator>();
movimentaInimigo = GetComponent<MovimentaPersonagem>();
}
// Update is called once per frame
void FixedUpdate()
{
float distancia = Vector3.Distance(transform.position, Jogador.transform.position);
Vector3 direcao = Jogador.transform.position - transform.position;
Quaternion novaRotacao = Quaternion.LookRotation(direcao);
rigidbodyInimigo.MoveRotation(novaRotacao);
if (distancia > 2.5)
{
//rigidbodyInimigo.MovePosition(GetComponent<Rigidbody>().position + direcao.normalized * Velocidade * Time.deltaTime);
movimentaInimigo.Movimentar(direcao, Velocidade);
animatorInimigo.SetBool("Atacando", false);
}
else
{
animatorInimigo.SetBool("Atacando", true);
}
}
void AtacaJogador()
{
int dano = Random.Range(10, 20);
Jogador.GetComponent<Controla_Jogador>().TomarDano(dano);
}