Por algum motivo, eu aplicando os "prefabs" do zumbi, e jogando no "Gerador", ele cria o inimigo, mas ele não me ataca em nenhum momento. Algum jeito para arrumar isso?
Por algum motivo, eu aplicando os "prefabs" do zumbi, e jogando no "Gerador", ele cria o inimigo, mas ele não me ataca em nenhum momento. Algum jeito para arrumar isso?
Oi, Gustavo, você já tentou aumentar a distancia de ataque?
Pode colar seu script aqui?
A distância de ataque está normal. Qual script você quer ver?
O do zumbi que faz o ataque.
Mas você já tentou aumentar a distancia? A distancia que eu coloquei no meu era um guia, no seu por exemplo os objetos podem estar maiores e não ser suficiente, você tem que testar o que funciona pro seu jogo. Parece que zumbi também tá rodando meio estranho o que pode influenciar. Vendo o código posso dar umas dicas nisso, mas veja se aumentando a distancia resolve o problema pra termos certeza.
Ah sim, realmente. Eu aumentei a distância de 2.5, para 3, e realmente funcionou. Muito obrigado.
De qualquer forma se quiser postar o código aqui eu dou uma olhada o porque deles estarem tombando pro lado do jogador :)
Aqui está o código usado para o Zumbi.
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Zombie : MonoBehaviour {
public GameObject PlayerChase;
public float speedy = 5;
void Start () {
PlayerChase = GameObject.FindWithTag("FindPlayer");
}
void Update () {
}
void FixedUpdate() {
float distance = Vector3.Distance(transform.position, PlayerChase.transform.position);
Vector3 direction = PlayerChase.transform.position - transform.position;
// Guys look. A {player}.
Quaternion Rotaction = Quaternion.LookRotation(direction);
GetComponent<Rigidbody>().MoveRotation(Rotaction);
if (distance > 3) {
GetComponent<Rigidbody>().MovePosition(GetComponent<Rigidbody>().position + direction.normalized * speedy * Time.deltaTime);
GetComponent<Animator>().SetBool("HitPlayer", false);
} else {
GetComponent<Animator>().SetBool("HitPlayer", true);
}
}
void Ded() {
Time.timeScale = 0;
PlayerChase.GetComponent<Movement>().TextOverLay.SetActive(true);
PlayerChase.GetComponent<Movement>().Life = false;
}
}
Você provavelmente pode fazer algo como:
Vector3 direction = PlayerChase.transform.position - transform.position;
direction.y = 0;
// Guys look. A {player}.
Quaternion Rotaction = Quaternion.LookRotation(direction);
GetComponent<Rigidbody>().MoveRotation(Rotaction);
Assim você cancelaria qualquer diferença em Y na direção e ele não olharia pra baixo nem pra cima.
Opa, beleza, coloquei aqui. Muito obrigado!