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?
Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!
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!