HORDA DE ZUMBIS
2 participantes
Página 1 de 1
HORDA DE ZUMBIS
Boa tarde pessoal!
Estou fazendo uma implementação em que uma horda de "zumbis" segue o player, que é o líder do bando. Meu problema está no posicionamento dos zumbis atrás do player. Se eu ligo o collider eles ficam se empurrando.
Alguém poderia me dar uma ideia de como posso fazer?
Esse é meu código.
Agradeço desde já!
Estou fazendo uma implementação em que uma horda de "zumbis" segue o player, que é o líder do bando. Meu problema está no posicionamento dos zumbis atrás do player. Se eu ligo o collider eles ficam se empurrando.
Alguém poderia me dar uma ideia de como posso fazer?
Esse é meu código.
- Código:
using UnityEngine;
using System.Collections;
public class Zumbie : MonoBehaviour
{
[SerializeField] private RaycastHit hit;
[SerializeField] private float distance;
[SerializeField] private GameObject target;
//[SerializeField] private float lookAtDistance = 25.0f;
[SerializeField] private float chaseRange = 4.0f;
[SerializeField] private float moveSpeed = 8.0f;
[SerializeField] private float damping = 6.0f;
[SerializeField] private Vector3 moveDirection = Vector3.zero;
[SerializeField] private AudioClip audio4;
[SerializeField] private Rigidbody rb;
[SerializeField] private GameObject localZombieSpawn;
void Start()
{
rb = GetComponent<Rigidbody>();
target = GameObject.FindWithTag("Player");
localZombieSpawn = GameObject.FindWithTag("SpawnZombie");
transform.SetParent(localZombieSpawn.GetComponent<Transform>());
}
void Update()
{
//Cálcula a distância do player
distance = Vector3.Distance(target.GetComponent<Transform>().position, transform.position);
/*
if (distance < lookAtDistance)
{
lookAt();
}
*/
}
void FixedUpdate()
{
Chase();
LookAt();
}
/// <summary>
/// Mantém a visão fixada no player
/// </summary>
private void LookAt()
{
//GetComponent<Renderer>().material.color = Color.yellow;
//var rotation = Quaternion.LookRotation(target.GetComponent<Transform>().position - transform.position);
//transform.rotation = Quaternion.Slerp(transform.rotation, rotation, Time.deltaTime * damping);
transform.LookAt(new Vector3(target.GetComponent<Transform>().position.x, transform.position.y, target.GetComponent<Transform>().position.z));
}
/// <summary>
/// Segue o movimento do palyer
/// </summary>
private void Chase()
{
if (distance > chaseRange)
{
Vector3 forwardDirection = new Vector3(transform.forward.x, 0, transform.forward.z) * 1;
Vector3 finalDirection = forwardDirection;
if (finalDirection.magnitude > 1)
{
finalDirection.Normalize();
}
moveDirection = finalDirection * moveSpeed * Time.deltaTime;
rb.MovePosition(transform.position + moveDirection);
}
}
}
Agradeço desde já!
thancor- Iniciante
- PONTOS : 2450
REPUTAÇÃO : 0
Respeito as regras :
Re: HORDA DE ZUMBIS
Boa tarde cara! já tentou usar o navmesh? acredito ser a melhor opção, com ele os zumbis irão seguir sem atropelar um ao outro, inclusive dá pra configurar no componente o raio de colisão deles.
O Marcos tem alguns vídeos sobre, esse é um deles:
Abraço!
O Marcos tem alguns vídeos sobre, esse é um deles:
Abraço!
Re: HORDA DE ZUMBIS
Muito obrigado!
Vou dar uma olhada para adaptar para este modo.
Vou dar uma olhada para adaptar para este modo.
thancor- Iniciante
- PONTOS : 2450
REPUTAÇÃO : 0
Respeito as regras :
Tópicos semelhantes
» Horda de inimigos
» Jogo de Matar Zumbis
» Como fazer um game de zumbis de mundo aberto que não seja massante?
» Jogo de Matar Zumbis
» Como fazer um game de zumbis de mundo aberto que não seja massante?
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos