[TUTORIAL] AI Enemy ( Jogos de terror )
+39
juninhooloko171
BlesseD
gustakegamer@gmail.com
joaozinho
ArysonSantos
kaufergomi
Mourao
dstaroski
BrazaTattoo
Joaopm1
marcelo123
PauloFR
GamersBR
Pedro Canassa Garcia
rafaelllsd
marx
tom ramber
Sergio Pimentel
Callyde Jr
zlDxTitan
JohnRambo
dalker
guithelucario
theallan256
Brian Victor
Gray_14
gagasilva
cosmoplay
zeca urubu
LeonradoGp
Orixinals
luizmeirelesx
Chilinger
LUCIFER
jhon lenon
osiasbezerra
eduardo9715
Lucas Garcia Frade
MarcosSchultz
43 participantes
Página 1 de 3
Página 1 de 3 • 1, 2, 3
[TUTORIAL] AI Enemy ( Jogos de terror )
Vídeo tutorial:
Script do inimigo:
Script do Player:
Script do inimigo:
- Código:
using UnityEngine;
using System.Collections;
public class INTELIGENCIA : MonoBehaviour {
public Transform Player;
private NavMeshAgent naveMesh;
private float DistanciaDoPlayer, DistanciaDoAIPoint;
public float DistanciaDePercepcao = 30,DistanciaDeSeguir = 20, DistanciaDeAtacar = 2, VelocidadeDePasseio = 3, VelocidadeDePerseguicao = 6,TempoPorAtaque = 1.5f, DanoDoInimigo = 40;
private bool VendoOPlayer;
public Transform[] DestinosAleatorios;
private int AIPointAtual;
private bool PerseguindoAlgo, contadorPerseguindoAlgo,atacandoAlgo;
private float cronometroDaPerseguicao,cronometroAtaque;
void Start (){
AIPointAtual = Random.Range (0, DestinosAleatorios.Length);
naveMesh = transform.GetComponent<NavMeshAgent> ();
}
void Update (){
DistanciaDoPlayer = Vector3.Distance(Player.transform.position,transform.position);
DistanciaDoAIPoint = Vector3.Distance(DestinosAleatorios[AIPointAtual].transform.position,transform.position);
//============================== RAYCAST ===================================//
RaycastHit hit;
Vector3 deOnde = transform.position;
Vector3 paraOnde = Player.transform.position;
Vector3 direction = paraOnde - deOnde;
if(Physics.Raycast (transform.position,direction,out hit,1000) && DistanciaDoPlayer < DistanciaDePercepcao ){
if(hit.collider.gameObject.CompareTag("Player")){
VendoOPlayer = true;
}else{
VendoOPlayer = false;
}
}
//================ CHECHAGENS E DECISOES DO INIMIGO ================//
if(DistanciaDoPlayer > DistanciaDePercepcao){
Passear();
}
if (DistanciaDoPlayer <= DistanciaDePercepcao && DistanciaDoPlayer > DistanciaDeSeguir) {
if(VendoOPlayer == true){
Olhar ();
}else{
Passear();
}
}
if (DistanciaDoPlayer <= DistanciaDeSeguir && DistanciaDoPlayer > DistanciaDeAtacar) {
if(VendoOPlayer == true){
Perseguir();
PerseguindoAlgo = true;
}else{
Passear();
}
}
if (DistanciaDoPlayer <= DistanciaDeAtacar) {
Atacar();
}
//COMANDOS DE PASSEAR
if (DistanciaDoAIPoint <= 2) {
AIPointAtual = Random.Range (0, DestinosAleatorios.Length);
Passear();
}
//CONTADORES DE PERSEGUICAO
if (contadorPerseguindoAlgo == true) {
cronometroDaPerseguicao += Time.deltaTime;
}
if (cronometroDaPerseguicao >= 5 && VendoOPlayer == false) {
contadorPerseguindoAlgo = false;
cronometroDaPerseguicao = 0;
PerseguindoAlgo = false;
}
// CONTADOR DE ATAQUE
if (atacandoAlgo == true) {
cronometroAtaque += Time.deltaTime;
}
if (cronometroAtaque >= TempoPorAtaque && DistanciaDoPlayer <= DistanciaDeAtacar) {
atacandoAlgo = true;
cronometroAtaque = 0;
PLAYER.VIDA = PLAYER.VIDA - DanoDoInimigo;
Debug.Log ("recebeuAtaque");
} else if (cronometroAtaque >= TempoPorAtaque && DistanciaDoPlayer > DistanciaDeAtacar) {
atacandoAlgo = false;
cronometroAtaque = 0;
Debug.Log ("errou");
}
}
void Passear (){
if (PerseguindoAlgo == false) {
naveMesh.acceleration = 5;
naveMesh.speed = VelocidadeDePasseio;
naveMesh.destination = DestinosAleatorios [AIPointAtual].position;
} else if (PerseguindoAlgo == true) {
contadorPerseguindoAlgo = true;
}
}
void Olhar(){
naveMesh.speed = 0;
transform.LookAt (Player);
}
void Perseguir(){
naveMesh.acceleration = 8;
naveMesh.speed = VelocidadeDePerseguicao;
naveMesh.destination = Player.position;
}
void Atacar (){
atacandoAlgo = true;
}
}
Script do Player:
- Código:
using UnityEngine;
using System.Collections;
public class PLAYER : MonoBehaviour {
public static float VIDA = 100;
void Update (){
if (VIDA <= 0) {
Debug.Log ("morreu");
}
}
}
Última edição por MarcosSchultz em Ter Jun 07, 2016 8:47 pm, editado 1 vez(es)
Re: [TUTORIAL] AI Enemy ( Jogos de terror )
O meu deu esse erro:
- Código:
MissingComponentException: There is no 'NavMeshAgent' attached to the "LION" game object, but a script is trying to access it.
You probably need to add a NavMeshAgent to the game object "LION". Or your script needs to check if the component is attached before using it.
AIPOINTS.Passear () (at Assets/Scripts/AIPOINTS.cs:85)
AIPOINTS.Update () (at Assets/Scripts/AIPOINTS.cs:34)
Lucas Garcia Frade- Avançado
- PONTOS : 3782
REPUTAÇÃO : 9
Idade : 23
Respeito as regras :
Re: [TUTORIAL] AI Enemy ( Jogos de terror )
esse aqui tem que assistir o vídeo, não é só jogar o script no objeto...
eu utilizei navMesh para fazer o Pafinding
eu utilizei navMesh para fazer o Pafinding
Re: [TUTORIAL] AI Enemy ( Jogos de terror )
Que parte mais ou menos ta isso???
Lucas Garcia Frade- Avançado
- PONTOS : 3782
REPUTAÇÃO : 9
Idade : 23
Respeito as regras :
Re: [TUTORIAL] AI Enemy ( Jogos de terror )
O que esta errado???
Lucas Garcia Frade- Avançado
- PONTOS : 3782
REPUTAÇÃO : 9
Idade : 23
Respeito as regras :
Lucas Garcia Frade- Avançado
- PONTOS : 3782
REPUTAÇÃO : 9
Idade : 23
Respeito as regras :
Re: [TUTORIAL] AI Enemy ( Jogos de terror )
Da mais uma olhada na imagem pra ver se fiz algo errado
Lucas Garcia Frade- Avançado
- PONTOS : 3782
REPUTAÇÃO : 9
Idade : 23
Respeito as regras :
Re: [TUTORIAL] AI Enemy ( Jogos de terror )
Ta falando que o navMesh nao tem um destination
Lucas Garcia Frade- Avançado
- PONTOS : 3782
REPUTAÇÃO : 9
Idade : 23
Respeito as regras :
Re: [TUTORIAL] AI Enemy ( Jogos de terror )
Bom, vou precisar que você faça 2 coisas...
primeira: retire o BoxCollider do inimigo... a navMesh já traz um colisor consigo.
segundo: mande-me as linhas em que o erro está apontando no script
primeira: retire o BoxCollider do inimigo... a navMesh já traz um colisor consigo.
segundo: mande-me as linhas em que o erro está apontando no script
Re: [TUTORIAL] AI Enemy ( Jogos de terror )
Linha 34, 87 e 99.
Lucas Garcia Frade- Avançado
- PONTOS : 3782
REPUTAÇÃO : 9
Idade : 23
Respeito as regras :
Re: [TUTORIAL] AI Enemy ( Jogos de terror )
Ein??? O que esta errado???
Lucas Garcia Frade- Avançado
- PONTOS : 3782
REPUTAÇÃO : 9
Idade : 23
Respeito as regras :
Re: [TUTORIAL] AI Enemy ( Jogos de terror )
Terá que zipar o projeto e me mandar...
é provavel que seu Player não seja um Transform ou não esteja sendo detectado pelo script talvez por causa da Tag...
é provavel que seu Player não seja um Transform ou não esteja sendo detectado pelo script talvez por causa da Tag...
Re: [TUTORIAL] AI Enemy ( Jogos de terror )
Ok, amanha te mando...
Lucas Garcia Frade- Avançado
- PONTOS : 3782
REPUTAÇÃO : 9
Idade : 23
Respeito as regras :
Re: [TUTORIAL] AI Enemy ( Jogos de terror )
Como te mando?
O Zipado tem 455 MB.
O Zipado tem 455 MB.
Lucas Garcia Frade- Avançado
- PONTOS : 3782
REPUTAÇÃO : 9
Idade : 23
Respeito as regras :
Re: [TUTORIAL] AI Enemy ( Jogos de terror )
Deixei no seu facebook, depois que ver me responder por aki mesmo
Lucas Garcia Frade- Avançado
- PONTOS : 3782
REPUTAÇÃO : 9
Idade : 23
Respeito as regras :
Re: [TUTORIAL] AI Enemy ( Jogos de terror )
Tem que executar e chegar perto do inimigo pro erro aparecer ta
Lucas Garcia Frade- Avançado
- PONTOS : 3782
REPUTAÇÃO : 9
Idade : 23
Respeito as regras :
Re: [TUTORIAL] AI Enemy ( Jogos de terror )
Assista o vídeo completo... você não deu bake no cenário
tem que selecionar os objetos estaticos e marca-los como estaticos na aba " navegation " e depois Dar um Bake para ele gerar a mesh...
Aqui tem um tutorial curto mostrando como usar o NavMesh
https://www.schultzgames.com/t102-tutorial-como-usar-navemesh-para-inimigos-desviarem-de-obstaculos
tem que selecionar os objetos estaticos e marca-los como estaticos na aba " navegation " e depois Dar um Bake para ele gerar a mesh...
Aqui tem um tutorial curto mostrando como usar o NavMesh
https://www.schultzgames.com/t102-tutorial-como-usar-navemesh-para-inimigos-desviarem-de-obstaculos
Re: [TUTORIAL] AI Enemy ( Jogos de terror )
Deu certo, vlw, pode me explicar como eu coloco uma animação pra quando o inimigo andar ele fazer um movimento com as pernas
Lucas Garcia Frade- Avançado
- PONTOS : 3782
REPUTAÇÃO : 9
Idade : 23
Respeito as regras :
Re: [TUTORIAL] AI Enemy ( Jogos de terror )
tem como eu usar esse metodo no meu inimigo pq aquele do inimigo ver e me seguir não esta dando certo no terreno ?
eduardo9715- Membro
- PONTOS : 3529
REPUTAÇÃO : 0
Respeito as regras :
Re: [TUTORIAL] AI Enemy ( Jogos de terror )
Cada inimigo requer uma AI meio especifica...
aquela eu elaborei para javaScript, é pra ser uma AI do SCP-Containment Breach
essa AI desse tópico é para um jogo de terror onde o inimigo te ve, e se você se aproximar demais dele, ele te segue... e por ai vai.
as AI's tem que ser elaboradas para situações especificas
aquela eu elaborei para javaScript, é pra ser uma AI do SCP-Containment Breach
essa AI desse tópico é para um jogo de terror onde o inimigo te ve, e se você se aproximar demais dele, ele te segue... e por ai vai.
as AI's tem que ser elaboradas para situações especificas
Re: [TUTORIAL] AI Enemy ( Jogos de terror )
mas tem como eu fazer essa de terror no terrain sem plane ou cube ?
eduardo9715- Membro
- PONTOS : 3529
REPUTAÇÃO : 0
Respeito as regras :
Re: [TUTORIAL] AI Enemy ( Jogos de terror )
Como coloco uma animação pra quando o inimigo andar???
Lucas Garcia Frade- Avançado
- PONTOS : 3782
REPUTAÇÃO : 9
Idade : 23
Respeito as regras :
Re: [TUTORIAL] AI Enemy ( Jogos de terror )
para fazer isso sincronizado com animações eu teria que fazer um vídeo explicando todo o funcionamento do Mecanim ou do animation...
Re: [TUTORIAL] AI Enemy ( Jogos de terror )
Vc pode fazer isso????
Isso serviria tanto pra inimigos como ate próprio personagem, desde já agradeço.
Isso serviria tanto pra inimigos como ate próprio personagem, desde já agradeço.
Lucas Garcia Frade- Avançado
- PONTOS : 3782
REPUTAÇÃO : 9
Idade : 23
Respeito as regras :
Re: [TUTORIAL] AI Enemy ( Jogos de terror )
Olá, Marcos, tenho uma dúvida: eu quero que passando 5 segundos que o inimigo ve o jogador, ele passeie (vá para um dos AIpoints), mas so que o cronometro chega a 5 e zera e o inimigo continua vendo, continua parado.
//fiz public para acompanhar os valores na aba
public float cronometroVer;
void Start(){...}
void Update
{
....
if (DistanciaDoPlayer <= DistanciaDePercepcao && DistanciaDoPlayer > DistanciaDeSeguir) {
if(VendoOPlayer==true){
//adicionei:
cronometroVer+=Time.deltaTime;
if (cronometroVer>5)
{
cronometroVer=0;
Passear();
}
else
//continuacao de seu codigo
{
Olhar ();
}
...
}
Grato a atençao!
//fiz public para acompanhar os valores na aba
public float cronometroVer;
void Start(){...}
void Update
{
....
if (DistanciaDoPlayer <= DistanciaDePercepcao && DistanciaDoPlayer > DistanciaDeSeguir) {
if(VendoOPlayer==true){
//adicionei:
cronometroVer+=Time.deltaTime;
if (cronometroVer>5)
{
cronometroVer=0;
Passear();
}
else
//continuacao de seu codigo
{
Olhar ();
}
...
}
Grato a atençao!
Última edição por osiasbezerra em Seg Jun 01, 2015 8:47 pm, editado 3 vez(es) (Motivo da edição : Faltou uma uma chave)
osiasbezerra- Avançado
- PONTOS : 3599
REPUTAÇÃO : 8
Respeito as regras :
Re: [TUTORIAL] AI Enemy ( Jogos de terror )
A linha do seu código que adicionei é entre a 37 e 38. Se quiser eu posso mandar todo o codigo, mas é porque é so essa parte alterada e a variavel cronometroVer criada, grato!
osiasbezerra- Avançado
- PONTOS : 3599
REPUTAÇÃO : 8
Respeito as regras :
Re: [TUTORIAL] AI Enemy ( Jogos de terror )
Refiz melhor assim: e ainda, depois de 5 segundos, o inimigo continua olhando, sendo que eu quero ele va para o IAPoint:
if (DistanciaDoPlayer <= DistanciaDePercepcao && DistanciaDoPlayer > DistanciaDeSeguir) {
if(VendoOPlayer == true){
cronometroVer+=Time.deltaTime;
if (cronometroVer>5)
{
cronometroVer=0;
//codigo enxertado do Passear(); para nao cair no booleano de Passear();
naveMesh.acceleration = 5;
naveMesh.speed = VelocidadeDePasseio;
naveMesh.destination = DestinosAleatorios [AIPointAtual].position;
}
else{
Olhar ();
}
if (DistanciaDoPlayer <= DistanciaDePercepcao && DistanciaDoPlayer > DistanciaDeSeguir) {
if(VendoOPlayer == true){
cronometroVer+=Time.deltaTime;
if (cronometroVer>5)
{
cronometroVer=0;
//codigo enxertado do Passear(); para nao cair no booleano de Passear();
naveMesh.acceleration = 5;
naveMesh.speed = VelocidadeDePasseio;
naveMesh.destination = DestinosAleatorios [AIPointAtual].position;
}
else{
Olhar ();
}
osiasbezerra- Avançado
- PONTOS : 3599
REPUTAÇÃO : 8
Respeito as regras :
Re: [TUTORIAL] AI Enemy ( Jogos de terror )
- Código:
///Segue abaixo:
using UnityEngine;
using System.Collections;
public class INTELIGENCIADois : MonoBehaviour {
public Transform Player;
private NavMeshAgent naveMesh;
private float DistanciaDoPlayer, DistanciaDoAIPoint;
public float DistanciaDePercepcao = 30,DistanciaDeSeguir = 20, DistanciaDeAtacar = 2, VelocidadeDePasseio = 3, VelocidadeDePerseguicao = 6,TempoPorAtaque = 1.5f, DanoDoInimigo = 40;
private bool VendoOPlayer;
public Transform[] DestinosAleatorios;
private int AIPointAtual;
private bool PerseguindoAlgo, contadorPerseguindoAlgo,atacandoAlgo;
private float cronometroDaPerseguicao,cronometroAtaque;
///ADICIONEI ESSE
public float cronometroVer;
void Start (){
AIPointAtual = Random.Range (0, DestinosAleatorios.Length);
naveMesh = transform.GetComponent<NavMeshAgent> ();
}
void Update (){
DistanciaDoPlayer = Vector3.Distance(Player.transform.position,transform.position);
DistanciaDoAIPoint = Vector3.Distance(DestinosAleatorios[AIPointAtual].transform.position,transform.position);
//============================== RAYCAST ===================================//
RaycastHit hit;
Vector3 deOnde = transform.position;
Vector3 paraOnde = Player.transform.position;
Vector3 direction = paraOnde - deOnde;
if(Physics.Raycast (transform.position,direction,out hit,1000) && DistanciaDoPlayer < DistanciaDePercepcao ){
if(hit.collider.gameObject.CompareTag("Player")){
VendoOPlayer = true;
}else{
VendoOPlayer = false;
}
}
//================ CHECHAGENS E DECISOES DO INIMIGO ================//
if(DistanciaDoPlayer > DistanciaDePercepcao){
Passear();
}
if (DistanciaDoPlayer <= DistanciaDePercepcao && DistanciaDoPlayer > DistanciaDeSeguir) {
if(VendoOPlayer == true){
//ADICIONEI AQUI MEU BLOCO
cronometroVer+=Time.deltaTime;
if (cronometroVer>5)
{
cronometroVer=0;
naveMesh.acceleration = 5;
naveMesh.speed = VelocidadeDePasseio;
naveMesh.destination = DestinosAleatorios [AIPointAtual].position;
}
else{
// FIM DO MEU BLOCO ADICIONADO
Olhar ();
}
}else{
Passear();
}
}
if (DistanciaDoPlayer <= DistanciaDeSeguir && DistanciaDoPlayer > DistanciaDeAtacar) {
if(VendoOPlayer == true){
Perseguir();
PerseguindoAlgo = true;
}else{
Passear();
}
}
if (DistanciaDoPlayer <= DistanciaDeAtacar) {
Atacar();
}
//COMANDOS DE PASSEAR
if (DistanciaDoAIPoint <= 2) {
AIPointAtual = Random.Range (0, DestinosAleatorios.Length);
Passear();
}
//CONTADORES DE PERSEGUICAO
if (contadorPerseguindoAlgo == true) {
cronometroDaPerseguicao += Time.deltaTime;
}
if (cronometroDaPerseguicao >= 5 && VendoOPlayer == false) {
contadorPerseguindoAlgo = false;
cronometroDaPerseguicao = 0;
PerseguindoAlgo = false;
}
// CONTADOR DE ATAQUE
if (atacandoAlgo == true) {
cronometroAtaque += Time.deltaTime;
}
if (cronometroAtaque >= TempoPorAtaque && DistanciaDoPlayer <= DistanciaDeAtacar) {
atacandoAlgo = true;
cronometroAtaque = 0;
PLAYER.VIDA = PLAYER.VIDA - DanoDoInimigo;
Debug.Log ("recebeuAtaque");
} else if (cronometroAtaque >= TempoPorAtaque && DistanciaDoPlayer > DistanciaDeAtacar) {
atacandoAlgo = false;
cronometroAtaque = 0;
Debug.Log ("errou");
}
}
void Passear (){
if (PerseguindoAlgo == false) {
naveMesh.acceleration = 5;
naveMesh.speed = VelocidadeDePasseio;
naveMesh.destination = DestinosAleatorios [AIPointAtual].position;
} else if (PerseguindoAlgo == true) {
contadorPerseguindoAlgo = true;
}
}
void Olhar(){
naveMesh.speed = 0;
transform.LookAt (Player);
}
void Perseguir(){
naveMesh.acceleration = 8;
naveMesh.speed = VelocidadeDePerseguicao;
naveMesh.destination = Player.position;
}
void Atacar (){
atacandoAlgo = true;
}
}
//Valeu a atencao!
Última edição por osiasbezerra em Ter Jun 02, 2015 2:33 am, editado 1 vez(es) (Motivo da edição : colocar em codigo)
osiasbezerra- Avançado
- PONTOS : 3599
REPUTAÇÃO : 8
Respeito as regras :
Re: [TUTORIAL] AI Enemy ( Jogos de terror )
tem um erro no Start
você não está dizendo que naveMesh vai receber o componente navMesh
você fez isso:
em vez disso:
você não está dizendo que naveMesh vai receber o componente navMesh
você fez isso:
- Código:
naveMesh = transform.GetComponent ();
em vez disso:
- Código:
naveMesh = transform.GetComponent<NavMeshAgent> ();
Re: [TUTORIAL] AI Enemy ( Jogos de terror )
Ok, Marcos, tem a questão do Unity 5 exigir o GetComponent e ajeitei. Sobre a lógica, eu
entendi meu erro: peço pra passear, mas como zerou o cronômetro ele apenas olha de novo.
Vou tentar corrigir aqui, depois te passo, valeu!
entendi meu erro: peço pra passear, mas como zerou o cronômetro ele apenas olha de novo.
Vou tentar corrigir aqui, depois te passo, valeu!
osiasbezerra- Avançado
- PONTOS : 3599
REPUTAÇÃO : 8
Respeito as regras :
Re: [TUTORIAL] AI Enemy ( Jogos de terror )
Olá, Marcos Schultz, eu consegui fazer a pequena mudanca que queria, que é o inimigo olhar por um tempo pequeno e depois passear, vale ressaltar que esse seu código é excelente para eu usar animacoes, pois so com o navmash agent eu nao tinha nenhuma ideia, muito obrigado!
- Código:
using UnityEngine;
using System.Collections;
public class INTELIGENCIA : MonoBehaviour {
public Transform Player;
private NavMeshAgent naveMesh;
private float DistanciaDoPlayer, DistanciaDoAIPoint;
public float DistanciaDePercepcao = 30,DistanciaDeSeguir = 20, DistanciaDeAtacar = 2, VelocidadeDePasseio = 3, VelocidadeDePerseguicao = 6,TempoPorAtaque = 1.5f, DanoDoInimigo = 40;
private bool VendoOPlayer;
public Transform[] DestinosAleatorios;
private int AIPointAtual;
private bool PerseguindoAlgo, contadorPerseguindoAlgo,atacandoAlgo;
private float cronometroDaPerseguicao,cronometroAtaque;
public bool ficaVendo=true;
public float cronometroDeVer;
void Start (){
AIPointAtual = Random.Range (0, DestinosAleatorios.Length);
naveMesh = transform.GetComponent<NavMeshAgent> ();
}
void Update (){
DistanciaDoPlayer = Vector3.Distance(Player.transform.position,transform.position);
DistanciaDoAIPoint = Vector3.Distance(DestinosAleatorios[AIPointAtual].transform.position,transform.position);
//============================== RAYCAST ===================================//
RaycastHit hit;
Vector3 deOnde = transform.position;
Vector3 paraOnde = Player.transform.position;
Vector3 direction = paraOnde - deOnde;
if (ficaVendo)
if(Physics.Raycast (transform.position,direction,out hit,1000) && DistanciaDoPlayer < DistanciaDePercepcao ){
if(hit.collider.gameObject.CompareTag("Player")){
VendoOPlayer = true;
}else{
VendoOPlayer = false;
}
}
//================ CHECHAGENS E DECISOES DO INIMIGO ================//
if(DistanciaDoPlayer > DistanciaDePercepcao){
Passear();
}
if (DistanciaDoPlayer <= DistanciaDePercepcao && DistanciaDoPlayer > DistanciaDeSeguir) {
if(VendoOPlayer){
Olhar ();
cronometroDeVer+=Time.deltaTime;
if (cronometroDeVer>=2)
{
VendoOPlayer = false;
ficaVendo=false;
cronometroDeVer=0;
}
}else{
Passear();
}
}
if (DistanciaDoPlayer <= DistanciaDeSeguir && DistanciaDoPlayer > DistanciaDeAtacar) {
if (!ficaVendo)
{
ficaVendo=true;
}
if(VendoOPlayer){
Perseguir();
PerseguindoAlgo = true;
}else{
Passear();
}
}
if (DistanciaDoPlayer <= DistanciaDeAtacar) {
Atacar();
}
//COMANDOS DE PASSEAR
if (DistanciaDoAIPoint <= 2) {
AIPointAtual = Random.Range (0, DestinosAleatorios.Length);
Passear();
}
//CONTADORES DE PERSEGUICAO
if (contadorPerseguindoAlgo == true) {
cronometroDaPerseguicao += Time.deltaTime;
}
if (cronometroDaPerseguicao >= 5 && VendoOPlayer == false) {
contadorPerseguindoAlgo = false;
cronometroDaPerseguicao = 0;
PerseguindoAlgo = false;
}
// CONTADOR DE ATAQUE
if (atacandoAlgo == true) {
cronometroAtaque += Time.deltaTime;
}
if (cronometroAtaque >= TempoPorAtaque && DistanciaDoPlayer <= DistanciaDeAtacar) {
atacandoAlgo = true;
cronometroAtaque = 0;
PLAYER.VIDA -= DanoDoInimigo;
Debug.Log ("recebeuAtaque");
} else if (cronometroAtaque >= TempoPorAtaque && DistanciaDoPlayer > DistanciaDeAtacar) {
atacandoAlgo = false;
cronometroAtaque = 0;
Debug.Log ("errou");
}
}
void Passear (){
if (PerseguindoAlgo == false) {
naveMesh.acceleration = 5;
naveMesh.speed = VelocidadeDePasseio;
naveMesh.destination = DestinosAleatorios [AIPointAtual].position;
} else if (PerseguindoAlgo == true) {
contadorPerseguindoAlgo = true;
}
}
void Olhar(){
naveMesh.speed = 0;
transform.LookAt (Player);
}
void Perseguir(){
naveMesh.acceleration = 8;
naveMesh.speed = VelocidadeDePerseguicao;
naveMesh.destination = Player.position;
}
void Atacar (){
atacandoAlgo = true;
}
}
osiasbezerra- Avançado
- PONTOS : 3599
REPUTAÇÃO : 8
Respeito as regras :
Re: [TUTORIAL] AI Enemy ( Jogos de terror )
FIZ COMO NO VIDEO MAS TA DANDO ESTE ERRO O QUE PODE SER
?
IndexOutOfRangeException: Array index is out of range.
INTELIGENCIA.Update () (at Assets/ESCRIPTS/INTELIGENCIA.cs:19)
?
IndexOutOfRangeException: Array index is out of range.
INTELIGENCIA.Update () (at Assets/ESCRIPTS/INTELIGENCIA.cs:19)
jhon lenon- Iniciante
- PONTOS : 3468
REPUTAÇÃO : 0
Respeito as regras :
Re: [TUTORIAL] AI Enemy ( Jogos de terror )
Linha 19 é esta:
provavelmente você não linkou os AIPoints nas variaveis
- Código:
DistanciaDoAIPoint = Vector3.Distance(DestinosAleatorios[AIPointAtual].transform.position,transform.position);
provavelmente você não linkou os AIPoints nas variaveis
Re: [TUTORIAL] AI Enemy ( Jogos de terror )
tinha me esquecido do size . vlw vc é o cara muito massa este forum vc encina de uma maneira muito facil .
jhon lenon- Iniciante
- PONTOS : 3468
REPUTAÇÃO : 0
Respeito as regras :
Re: [TUTORIAL] AI Enemy ( Jogos de terror )
como que eu faço para edicionar esse escript do inimigo me seguir e colocar audio dele andando e gritando quando me ver?
quero que o inimigo me mate se ele encostar em mim.
preciso muito de sua ajuda, sou iniciante e não sei quase nada de c#
vi suas video aulas de c# mas não consigo fazer.
obrigado
quero que o inimigo me mate se ele encostar em mim.
preciso muito de sua ajuda, sou iniciante e não sei quase nada de c#
vi suas video aulas de c# mas não consigo fazer.
obrigado
LUCIFER- Iniciante
- PONTOS : 3423
REPUTAÇÃO : 0
Respeito as regras :
Chilinger- MembroAvançado
- PONTOS : 4094
REPUTAÇÃO : 42
Idade : 30
Respeito as regras :
Re: [TUTORIAL] AI Enemy ( Jogos de terror )
Lucifer, você pode ver o vídeo acima como também pode ver a minha vídeo aula.
basta saber configurar as variáveis que eu criei, como o dano do inimigo, etc...
Se assistir a minha vídeo aula completa com certeza saberá fazer o que está querendo
basta saber configurar as variáveis que eu criei, como o dano do inimigo, etc...
Se assistir a minha vídeo aula completa com certeza saberá fazer o que está querendo
Re: [TUTORIAL] AI Enemy ( Jogos de terror )
O script funcionou agora vou tentar fazer ele morrer se o inimigo tocar nele, ja que não consigo colocar a barra de vida para ele ter dano.
mas só tem um problema, ele não me segue, passeia pelo mapa porem ele me evita.
o que seria?
eu ja linkei o player
obrigado pelo script e ajuda.
mas só tem um problema, ele não me segue, passeia pelo mapa porem ele me evita.
o que seria?
eu ja linkei o player
obrigado pelo script e ajuda.
LUCIFER- Iniciante
- PONTOS : 3423
REPUTAÇÃO : 0
Respeito as regras :
{RESOLVIDO}
ola marcos funcionou tudo 100%, so que fiz testei com poucos AI points eles não estão dando loop, quando inimigo chega no 3° aipoint por exemplo ele para se mexer e volta a se mexer só se ver o player
luizmeirelesx- Iniciante
- PONTOS : 3411
REPUTAÇÃO : 0
Respeito as regras :
Re: [TUTORIAL] AI Enemy ( Jogos de terror )
Olá marcos , funcionou tudo certinho , porem quando ele da o hit em min não acontece nada , e não aparece nada no console , o inimigo que estou usando é uma aranha que baixei do assets store.
Orixinals- Iniciante
- PONTOS : 3380
REPUTAÇÃO : 2
Respeito as regras :
Re: [TUTORIAL] AI Enemy ( Jogos de terror )
O meu também não recebe dano!
LeonradoGp- Membro
- PONTOS : 3636
REPUTAÇÃO : 3
Idade : 25
Respeito as regras :
Re: [TUTORIAL] AI Enemy ( Jogos de terror )
Não tem dano por que eu não criei nenhum sistema de dano ué... basta ver o vídeo.
o que eu fiz foi isto:
Tem apenas um Debug.Log para dizer se recebeu o ataque e outro para dizer se errou... nenhuma função de dano
o que eu fiz foi isto:
- Código:
if (cronometroAtaque >= TempoPorAtaque && DistanciaDoPlayer <= DistanciaDeAtacar) {
atacandoAlgo = true;
cronometroAtaque = 0;
PLAYER.VIDA = PLAYER.VIDA - DanoDoInimigo;
Debug.Log ("recebeuAtaque");
} else if (cronometroAtaque >= TempoPorAtaque && DistanciaDoPlayer > DistanciaDeAtacar) {
atacandoAlgo = false;
cronometroAtaque = 0;
Debug.Log ("errou");
}
Tem apenas um Debug.Log para dizer se recebeu o ataque e outro para dizer se errou... nenhuma função de dano
Re: [TUTORIAL] AI Enemy ( Jogos de terror )
" />
ESTA DANDO ESSE ERRO PORQUE?
ESTA DANDO ESSE ERRO PORQUE?
zeca urubu- MembroAvançado
- PONTOS : 3448
REPUTAÇÃO : 15
Idade : 26
Respeito as regras :
cosmoplay- Avançado
- PONTOS : 3797
REPUTAÇÃO : 45
Idade : 26
Respeito as regras :
AI Enemy para Jogos de TERROR - UNITY 3D
Meu inimigo ele deita no chão e fica em 180° graus como arrumar?
gagasilva- Iniciante
- PONTOS : 3282
REPUTAÇÃO : 1
Respeito as regras :
Página 1 de 3 • 1, 2, 3
Tópicos semelhantes
» [TUTORIAL] AI Enemy 2.0 + animações ( Jogos de terror )
» [TUTORIAL] Fazer textura aparecer rapidamente na tela ( susto para jogos de terror )
» [TUTORIAL] Como criar um JOGO DE TERROR
» Sistema de se Esconder - Jogos de Terror
» [Unity 5] script de perseguição para jogos de terror
» [TUTORIAL] Fazer textura aparecer rapidamente na tela ( susto para jogos de terror )
» [TUTORIAL] Como criar um JOGO DE TERROR
» Sistema de se Esconder - Jogos de Terror
» [Unity 5] script de perseguição para jogos de terror
Página 1 de 3
Permissões neste sub-fórum
Não podes responder a tópicos