Enemy grid movement
2 participantes
Página 1 de 1
Enemy grid movement
Bom dia gente
gostaria de saber se alguem tem uma ideia de fazer o inimigo se movimentar tipo os do game legend of grimrock?
fiz o sistema de movimento pro player deu tudo blz no player porem me compliquei todo tentando usar o mesmo sistema no inimigo '-'
e um projeto de teste meio dungeon crawler 3D em primeira pessoa(mesmo estilo de grimrock)
tenho ideia pro resto todo so que essa parte da IA ta me quebrando =/
esse o codigo do movimento do player ele ate entao ta de boa
quem puder dar uma ideia ja vai salvar muito
gostaria de saber se alguem tem uma ideia de fazer o inimigo se movimentar tipo os do game legend of grimrock?
fiz o sistema de movimento pro player deu tudo blz no player porem me compliquei todo tentando usar o mesmo sistema no inimigo '-'
e um projeto de teste meio dungeon crawler 3D em primeira pessoa(mesmo estilo de grimrock)
tenho ideia pro resto todo so que essa parte da IA ta me quebrando =/
esse o codigo do movimento do player ele ate entao ta de boa
quem puder dar uma ideia ja vai salvar muito
- Código:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class TestMove : MonoBehaviour {
Vector3 newPos;
Quaternion newRot;
Transform player;
int gridSize = 2;
int mSmooth = 6;
int rSmooth = 360;
bool hitF;
bool hitB;
bool waitW;
bool waitT;
void Start() {
player = transform;
newPos = transform.position;
newRot = transform.rotation;
hitF = false;
hitB = false;
waitW = false;
waitT = false;
}
void Update() {
//checa movimento pra frente
if (Physics.Raycast (player.position, transform.forward, 1.5f)) {
hitF = true;
} else {
hitF = false;
}
//checa movimento pra trás
if (Physics.Raycast (player.position, -transform.forward, 1.5f)) {
hitB = true;
} else {
hitB = false;
}
//move para frente
if (Input.GetKeyDown (KeyCode.W) && waitW == false && waitT == false && hitF == false) { // move forward
waitW = true;
StartCoroutine ("WaitingWalk");
newPos = (transform.forward * gridSize) + transform.position;
}
//move para esquerda
if (Input.GetKeyDown (KeyCode.A) && waitW == false && waitT == false && hitB == false) { // move backward
waitW = true;
StartCoroutine ("WaitingWalk");
newPos = (-transform.right * gridSize) + transform.position;
}
//move para direita
if (Input.GetKeyDown (KeyCode.D) && waitW == false && waitT == false && hitB == false) { // move backward
waitW = true;
StartCoroutine ("WaitingWalk");
newPos = (transform.right * gridSize) + transform.position;
}
//move para tras
if (Input.GetKeyDown (KeyCode.S) && waitW == false && waitT == false && hitB == false) { // move backward
waitW = true;
StartCoroutine ("WaitingWalk");
newPos = (-transform.forward * gridSize) + transform.position;
}
//vira para direita
if (Input.GetKeyDown (KeyCode.E) && waitT == false) { // turn right
waitT = true;
StartCoroutine ("WaitingTurn");
newRot = newRot * Quaternion.Euler (0, 90, 0);
}
//vira para esquerda
if (Input.GetKeyDown (KeyCode.Q) && waitT == false) {
waitT = true;
StartCoroutine ("WaitingTurn");
newRot = newRot * Quaternion.Euler (0, -90, 0);
}
transform.position = Vector3.MoveTowards (transform.position, newPos, Time.deltaTime * mSmooth);
transform.rotation = Quaternion.RotateTowards (transform.rotation, newRot, Time.deltaTime * rSmooth);
}
//cooldown para andar de novo
IEnumerator WaitingWalk () {
yield return new WaitForSeconds (0.2f);
waitW = false;
}
//cooldown para virar de novo
IEnumerator WaitingTurn () {
yield return new WaitForSeconds (0.2f);
waitT = false;
}
}
speedluk- Avançado
- PONTOS : 2677
REPUTAÇÃO : 29
Idade : 32
Respeito as regras :
Re: Enemy grid movement
Boa tarde amigo! da uma olhada nesse topico talvez possa te ajudar
https://www.schultzgames.com/t8808-tutorial-como-usar-free-easy-criatura-controle-ia
https://www.schultzgames.com/t8808-tutorial-como-usar-free-easy-criatura-controle-ia
Unidade3d5- Avançado
- PONTOS : 3030
REPUTAÇÃO : 28
Respeito as regras :
Tópicos semelhantes
» Enemy IA 1x1 movement!?
» Como se faz uma grid, apenas e somente uma grid em 3D?
» Ajuda Enemy AI
» grid unity
» erro AI Enemy
» Como se faz uma grid, apenas e somente uma grid em 3D?
» Ajuda Enemy AI
» grid unity
» erro AI Enemy
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos