Como fazer uma IA sem Navmesh
+3
fabriciorsz34
MarcosSchultz
AnderGames
7 participantes
Página 1 de 1
Como fazer uma IA sem Navmesh
Olá a todos!
Estou com uma dúvida, sobre como fazer uma IA sem Navmesh, pois em meu game, o cenário é gerado de forma procedural em tempo real e ficaria muito pesado gerar a Navmesh junto com o cenário...
Já tentei fazer de algumas formas, porém sem sucesso, alguém pode me ajudar?
Estou com uma dúvida, sobre como fazer uma IA sem Navmesh, pois em meu game, o cenário é gerado de forma procedural em tempo real e ficaria muito pesado gerar a Navmesh junto com o cenário...
Já tentei fazer de algumas formas, porém sem sucesso, alguém pode me ajudar?
Re: Como fazer uma IA sem Navmesh
Cara, ai você entrou em um beco profundo e complexo, chamado AI Pathfinding
Boa sorte
Boa sorte
Re: Como fazer uma IA sem Navmesh
Usa o translate kkkk vai parecer minecraft indo reto
fabriciorsz34- Avançado
- PONTOS : 3340
REPUTAÇÃO : 25
Idade : 24
Áreas de atuação : C#,unity,cinema 4D, SketchUp
Respeito as regras :
Re: Como fazer uma IA sem Navmesh
Sim estou estudando, principalmente um tal de A* Parhfinding, porém sem sucesso.MarcosSchultz escreveu:Cara, ai você entrou em um beco profundo e complexo, chamado AI Pathfinding
Boa sorte
Re: Como fazer uma IA sem Navmesh
Talvez esse vídeo pode lhe dar um começo(em ingles):
https://www.youtube.com/watch?v=y1q5ZkD52LE&index=62&list=PLW3Zl3wyJwWOpdhYedlD-yCB7WQoHf-My
https://www.youtube.com/watch?v=y1q5ZkD52LE&index=62&list=PLW3Zl3wyJwWOpdhYedlD-yCB7WQoHf-My
Re: Como fazer uma IA sem Navmesh
Vou dar uma olhada, qqer coisa eu posto aqui....recagonlei escreveu:Talvez esse vídeo pode lhe dar um começo(em ingles):
https://www.youtube.com/watch?v=y1q5ZkD52LE&index=62&list=PLW3Zl3wyJwWOpdhYedlD-yCB7WQoHf-My
Re: Como fazer uma IA sem Navmesh
Da para fazer ve esse script ai
- Código:
using UnityEngine;
using System.Collections;
using System.Collections.Generic;
using UnityEngine.SceneManagement;
[RequireComponent(typeof(Animator))]
public class Zombie: MonoBehaviour {
private Collider col { get { return GetComponent<Collider> (); } set { col = value; } }
public Animator anim;//Animator
public GameObject Player;//Player
public Vector3 DistV;//Distancia em x,y,z
public Quaternion rotQ;//Olhar para o Player
public float rmaxF;//Raio maximo
public float rmedF;//Raio medio
public float rmimF;//Raio minimo
public int animI;//Numero de comportamento
public Rigidbody rb;
public int damage;
public bool ATT;
void Awake () {
rb = GetComponent<Rigidbody>();
}
void Start (){
rmaxF = 25;
rmedF = 15;
rmimF = 1;
animI = 3;
Player = GameObject.FindWithTag ("Player");
anim = GetComponent<Animator> ();
ATT = false;
damage = 20;
}
void Update (){
switch(animI){
case 0:{
anim.SetBool("andar",false);//parado
break;
}
case 1:{
ATT = false;
anim.SetBool("andar",true);//seguindo
anim.SetBool("ataque",false);
break;
}
case 2:{
ATT = true;
anim.SetBool("ataque",true);//atacando
break;
}
case 3:{
anim.SetBool("andar",true);//movimento eliatorio
anim.SetBool("ataque",false);
break;
}
default:{
Debug.Log("Pensando");
anim.SetBool("andar",false);//pensando
anim.SetBool("ataque",false);
break;
}
}
//Variaves
DistV = transform.position - Player.transform.position;//Distancia
rotQ = Quaternion.LookRotation(DistV);//Local de rotaçao
//funçao
if(ATT == true){transform.eulerAngles = new Vector3(transform.eulerAngles.x,rotQ.eulerAngles.y + 180);}
if(DistV.x <= rmimF && DistV.x >= - rmimF && DistV.z <= rmimF && DistV.z >= - rmimF)
{animI = 2;}else
if(DistV.x <= rmedF && DistV.x >= - rmedF && DistV.z <= rmedF && DistV.z >= - rmedF)
{animI = 1;}else
if(DistV.x <= rmaxF && DistV.x >= - rmaxF && DistV.z <= rmaxF && DistV.z >= - rmaxF)
{animI = 0;}
}
void Atacar(){
if (ATT == true) {
StartCoroutine (TempoDeAtaque());
}
}
IEnumerator TempoDeAtaque(){
ATT = false;
yield return new WaitForSeconds (1);
ATT = true;
}
void OnTriggerEnter(Collider col){
if(col.gameObject.tag == "Player"){
col.gameObject.GetComponent<PlayerVida>().DamageReceived(damage);
Debug.Log("Atacando");
}
}
}
Re: Como fazer uma IA sem Navmesh
Achei uma solução... Usei raycasts para colocar um campo de visão na IA, fazendo com que ela desvie dos obstáculos.... O problema é q ela fica um pouco demente, muitas vezes procurando um caminho nada a ver para chegar ao jogadorAnderGames escreveu:Olá a todos!
Estou com uma dúvida, sobre como fazer uma IA sem Navmesh, pois em meu game, o cenário é gerado de forma procedural em tempo real e ficaria muito pesado gerar a Navmesh junto com o cenário...
Já tentei fazer de algumas formas, porém sem sucesso, alguém pode me ajudar?
Re: Como fazer uma IA sem Navmesh
Cara, pelo que eu sei, o melhor jeito de fazer um IA pathfinding, sem usar raycasts, é usando o algoritmo A*:AnderGames escreveu:Achei uma solução... Usei raycasts para colocar um campo de visão na IA, fazendo com que ela desvie dos obstáculos.... O problema é q ela fica um pouco demente, muitas vezes procurando um caminho nada a ver para chegar ao jogadorAnderGames escreveu:Olá a todos!
Estou com uma dúvida, sobre como fazer uma IA sem Navmesh, pois em meu game, o cenário é gerado de forma procedural em tempo real e ficaria muito pesado gerar a Navmesh junto com o cenário...
Já tentei fazer de algumas formas, porém sem sucesso, alguém pode me ajudar?
https://pt.wikipedia.org/wiki/Algoritmo_A*
https://www.youtube.com/watch?v=s29WpBi2exw
Daniel Pires da Silva- Avançado
- PONTOS : 2756
REPUTAÇÃO : 37
Idade : 20
Áreas de atuação : Cursando C#
Respeito as regras :
Re: Como fazer uma IA sem Navmesh
Veja esse tutorial https://www.schultzgames.com/t7362-tutorial-de-ai#51837
Tópicos semelhantes
» [Ajuda] Como faço uma IA de Animal Com navmesh?
» Como "medir" a distância do caminho no NavMesh??
» como fazer um sistema de construçao de base? (como se fosse o do rust)
» Como fazer um objeto se comportar como um Trampolim ? Pfv
» Como mover um objeto para outro objeto (Navmesh ?)
» Como "medir" a distância do caminho no NavMesh??
» como fazer um sistema de construçao de base? (como se fosse o do rust)
» Como fazer um objeto se comportar como um Trampolim ? Pfv
» Como mover um objeto para outro objeto (Navmesh ?)
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos