AI se movimentar aleatoriamente pelo mapa usando NAVMESH
3 participantes
Página 1 de 1
AI se movimentar aleatoriamente pelo mapa usando NAVMESH
eae galera blz?
gostaria de saber se alguem sabe como fazer um script simples que faça minha AI andar aleatoriamente pelo mapa? ex quando comecar o jogo eu quero que ela começa a andar pelo mapa usando o navmesh e sem usar AIpoint ou algo do tipo,so andar mesmo (perambular patrulhar) agradeço desde ja
gostaria de saber se alguem sabe como fazer um script simples que faça minha AI andar aleatoriamente pelo mapa? ex quando comecar o jogo eu quero que ela começa a andar pelo mapa usando o navmesh e sem usar AIpoint ou algo do tipo,so andar mesmo (perambular patrulhar) agradeço desde ja

Unidade3d5- Avançado
-
PONTOS : 2675
REPUTAÇÃO : 28
Respeito as regras :
Re: AI se movimentar aleatoriamente pelo mapa usando NAVMESH
Unidade3d5 escreveu:eae galera blz?
gostaria de saber se alguem sabe como fazer um script simples que faça minha AI andar aleatoriamente pelo mapa? ex quando comecar o jogo eu quero que ela começa a andar pelo mapa usando o navmesh e sem usar AIpoint ou algo do tipo,so andar mesmo (perambular patrulhar) agradeço desde ja
- Código:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
using UnityEngine.EventSystems;
public class Aisimples : MonoBehaviour
{
public float tempo = 3;
public bool AtivaMovRandom = false;
public float direcoes = 4;
public float relogio;
void Update()
{
if (AtivaMovRandom)
{
relogio += Time.deltaTime;
float direcaoSorteado;
direcaoSorteado = Random.Range(0, direcoes);
if (direcaoSorteado == 1)
{
transform.Translate(Vector3.left * Time.deltaTime);
// move para o lado sorteado
}
if (direcaoSorteado == 2)
{
transform.Translate(Vector3.right * Time.deltaTime);
// move para o lado sorteado
}
if (direcaoSorteado == 3)
{
transform.Translate(Vector3.back * Time.deltaTime);
// move para o lado sorteado
}
if (direcaoSorteado == 4)
{
transform.Translate(Vector3.forward * Time.deltaTime);
// move para o lado sorteado
}
if (relogio >= tempo)
{
relogio = 0;
}
}
}
}
Re: AI se movimentar aleatoriamente pelo mapa usando NAVMESH
Cara, também estou tentando fazer isto, o problema é fazer a Ia entender para qual lugar ela vai se não tem alguma objetivo....uma solução que estou pensando em fazer Aiponts nos cantos máximos em que ela pode ir, paredes por exemplo..Com isso você pode dizer por quanto tempo ela pode ir naquela parede enquanto desativa outras iaPoints...ela meio que vai ate a metade do caminho e ja escolhe outro..se caso ele venha a escosta na parede já sorteia outtro lugar novamente....Espero que tenha ajudado..irei pensar em outras possibilidades..até mais
Ronnisz- Iniciante
- PONTOS : 2294
REPUTAÇÃO : 1
Respeito as regras :
Re: AI se movimentar aleatoriamente pelo mapa usando NAVMESH
o que todos fazem e instaciar ai points em lugares randomicamente dentro de uma area. mais ele falou que não queria que fosse por aiPoints kkkRonnisz escreveu:Cara, também estou tentando fazer isto, o problema é fazer a Ia entender para qual lugar ela vai se não tem alguma objetivo....uma solução que estou pensando em fazer Aiponts nos cantos máximos em que ela pode ir, paredes por exemplo..Com isso você pode dizer por quanto tempo ela pode ir naquela parede enquanto desativa outras iaPoints...ela meio que vai ate a metade do caminho e ja escolhe outro..se caso ele venha a escosta na parede já sorteia outtro lugar novamente....Espero que tenha ajudado..irei pensar em outras possibilidades..até mais
Re: AI se movimentar aleatoriamente pelo mapa usando NAVMESH
Unidade3d5 escreveu:eae galera blz?
gostaria de saber se alguem sabe como fazer um script simples que faça minha AI andar aleatoriamente pelo mapa? ex quando comecar o jogo eu quero que ela começa a andar pelo mapa usando o navmesh e sem usar AIpoint ou algo do tipo,so andar mesmo (perambular patrulhar) agradeço desde ja
- Código:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class InstanciaObjeto : MonoBehaviour {
public List<GameObject> locais = new List<GameObject>();
//public GameObject prefabs;
public float time = 5f;
public int local;
void Start ()
{
StartCoroutine ("SortearLocal");
}
// Update is called once per frame
void Update ()
{
foreach (GameObject item in locais) {
if (locais.IndexOf(item) == local) {
item.SetActive (true);
} else {
item.SetActive (false);
}
}
}
IEnumerator SortearLocal()
{
//Debug.Log ("time");
local = Random.Range (0,locais.Count + 1);
yield return new WaitForSeconds (time);
StartCoroutine ("SortearLocal");
}
}
Ronnisz- Iniciante
- PONTOS : 2294
REPUTAÇÃO : 1
Respeito as regras :
Re: AI se movimentar aleatoriamente pelo mapa usando NAVMESH
vlw mano pela ajuda, mas e que tipo eu preciso usar o navMesh sem AI points pq meu jogo e Multiplayer e eu preciso instanciar os bichos depois q o player ja tiver instanciado,se nao os bichos nao reconhecem o player
Unidade3d5- Avançado
-
PONTOS : 2675
REPUTAÇÃO : 28
Respeito as regras :
Re: AI se movimentar aleatoriamente pelo mapa usando NAVMESH
- Código:
using UnityEngine;
using System.Collections;
public class EnemyMovement : MonoBehaviour {
[Range(0,100)]
public float roamSpeed = 1.5f;
public float tempo = 3;
public float relogio;
UnityEngine.AI.NavMeshAgent nav;
Animator anim;
Vector3 position;
bool hasValidTarget = false;
void Start() {
nav = GetComponent <UnityEngine.AI.NavMeshAgent> ();
anim = GetComponent<Animator>();
SetRandomNavTarget();
}
void Update() {
relogio += Time.deltaTime;
nav.speed = roamSpeed;
nav.SetDestination(position);
Teste ();
}
void Teste(){
if (relogio >= tempo)
{
relogio = 0;
Debug.Log ("Zerou");
SetRandomNavTarget();
}
}
void SetRandomNavTarget() {
Vector3 randomPosition = Random.insideUnitSphere * 30;
randomPosition.y = 0;
randomPosition += transform.position;
UnityEngine.AI.NavMeshHit hit;
UnityEngine.AI.NavMesh.SamplePosition(randomPosition, out hit, 5, 1);
Vector3 finalPosition = hit.position;
position = finalPosition;
//SetRandomNavTarget();
// transform.LookAt (finalPosition);
Debug.Log ("Movendo");
}
}
Consegui galera com a ajuda de vcs

Unidade3d5- Avançado
-
PONTOS : 2675
REPUTAÇÃO : 28
Respeito as regras :

» Navmesh em mapa gerado aleatoriamente existe?
» Fazer Os NPC Andarem Aleatoriamente pelo mapa (3D)
» Fazer Os NPC Andarem Aleatoriamente pelo mapa (3D)
» spawn aleatorio pelo mapa
» Como colocar um boneco pra andar pelo mapa?
» Fazer Os NPC Andarem Aleatoriamente pelo mapa (3D)
» Fazer Os NPC Andarem Aleatoriamente pelo mapa (3D)
» spawn aleatorio pelo mapa
» Como colocar um boneco pra andar pelo mapa?
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos