[TUTORIAL] AI simples inimiga
2 participantes
Página 1 de 1
[TUTORIAL] AI simples inimiga
Bom dia, hj venho trazer um script de AI simples do inimigo, mas inteligente.
O script estará um pouco explicado e será simples, mas quem estiver com duvidas pode dizer que eu erei responder.
Script Inimigo:
Script do Jogador
Espero que tenham gostado.
O script estará um pouco explicado e será simples, mas quem estiver com duvidas pode dizer que eu erei responder.
Script Inimigo:
- Código:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
[RequireComponent(typeof(UnityEngine.AI.NavMeshAgent))]
public class Inimigo : MonoBehaviour {
// crie um script com o nome Inimgio
// meta este script no seu inimigo
// crie uma nova tag com o nome "Inimigo"
private GameObject player;
private UnityEngine.AI.NavMeshAgent navMesh;
private int vida = 100; //vida do inimigo
private bool podeAtacar;
void Awake(){
transform.tag = "Inimigo"; //isto irá por a tag Inimigo no seu inimigo automaticamente
}
void Start () {
player = GameObject.FindWithTag ("Player"); // irá procurar o seu player
navMesh = GetComponent<UnityEngine.AI.NavMeshAgent> ();
podeAtacar = true;
}
void Update (){
navMesh.destination = player.transform.position; // o inimigo irá mover-se até a posição do inimigo
if (Vector3.Distance (transform.position, player.transform.position) < 1.5f){ // se o inimigo estiver a menos de 1.5 do player ele era iniciar o Atacar
Atacar();
}
if (Input.GetKey (KeyCode.C)) { //se o player estiver a menos de 2 do inimigo e clicar na tecla C o inimigo fica com menos 50 pontos de vida
if (Vector3.Distance (transform.position, player.transform.position) < 2) {
vida -= 50;
}
}
if (vida <= 0) { // se a vida do inimigo for menor ou igual a 0 ele ira auto-destruir-se
Destroy (gameObject);
}
}
void Atacar(){ // isto é a void Atacar, quando iniciada o player sofre 20 pontos de dano
if (podeAtacar == true) {
StartCoroutine ("TempoDeAtaque");
player.GetComponent<Jogador> ().vidaAtual -= 20; // aqui pode alterar o dano do personagem
}
}
IEnumerator TempoDeAtaque(){ // isto é o tempo em que o inimigo espera entre cada ataque
podeAtacar = false;
yield return new WaitForSeconds (1); //nesta linha pode alterar o tempo
podeAtacar = true;
}
}
Script do Jogador
- Código:
using UnityEngine;
using System.Collections;
using UnityEngine.SceneManagement;
using UnityEngine.UI;
public class Jogador : MonoBehaviour {
// criar um script com o nome Jogador
// colocar este script no seu jogador
public float vidaAtual;
void Awake(){
transform.tag = "Player"; //isto irá por a tag Player no seu jogador
}
void Update () {
if (vidaAtual <= 0) { //se a vida do seu Player ficar igual ou menor que 0 irá carregar a cena "Morte"
SceneManager.LoadScene ("Morte");
}
}
}
Espero que tenham gostado.
GloryGames- Membro
- PONTOS : 2878
REPUTAÇÃO : 11
Respeito as regras :
Re: [TUTORIAL] AI simples inimiga
Esqueci de dizer que é preciso fazer o seguinte:
Ir a navigation > Bake (botao superior) > Bake (botao inferior direito)
e acrescentar um novo componente no seu inimigo. Nav Mesh Agent
Ir a navigation > Bake (botao superior) > Bake (botao inferior direito)
e acrescentar um novo componente no seu inimigo. Nav Mesh Agent
GloryGames- Membro
- PONTOS : 2878
REPUTAÇÃO : 11
Respeito as regras :
Re: [TUTORIAL] AI simples inimiga
Parabéns cara pela iniciativa!GloryGames escreveu:Bom dia, hj venho trazer um script de AI simples do inimigo, mas inteligente.
O script estará um pouco explicado e será simples, mas quem estiver com duvidas pode dizer que eu erei responder.
Script Inimigo:
- Código:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
[RequireComponent(typeof(UnityEngine.AI.NavMeshAgent))]
public class Inimigo : MonoBehaviour {
// crie um script com o nome Inimgio
// meta este script no seu inimigo
// crie uma nova tag com o nome "Inimigo"
private GameObject player;
private UnityEngine.AI.NavMeshAgent navMesh;
private int vida = 100; //vida do inimigo
private bool podeAtacar;
void Awake(){
transform.tag = "Inimigo"; //isto irá por a tag Inimigo no seu inimigo automaticamente
}
void Start () {
player = GameObject.FindWithTag ("Player"); // irá procurar o seu player
navMesh = GetComponent<UnityEngine.AI.NavMeshAgent> ();
podeAtacar = true;
}
void Update (){
navMesh.destination = player.transform.position; // o inimigo irá mover-se até a posição do inimigo
if (Vector3.Distance (transform.position, player.transform.position) < 1.5f){ // se o inimigo estiver a menos de 1.5 do player ele era iniciar o Atacar
Atacar();
}
if (Input.GetKey (KeyCode.C)) { //se o player estiver a menos de 2 do inimigo e clicar na tecla C o inimigo fica com menos 50 pontos de vida
if (Vector3.Distance (transform.position, player.transform.position) < 2) {
vida -= 50;
}
}
if (vida <= 0) { // se a vida do inimigo for menor ou igual a 0 ele ira auto-destruir-se
Destroy (gameObject);
}
}
void Atacar(){ // isto é a void Atacar, quando iniciada o player sofre 20 pontos de dano
if (podeAtacar == true) {
StartCoroutine ("TempoDeAtaque");
player.GetComponent<Jogador> ().vidaAtual -= 20; // aqui pode alterar o dano do personagem
}
}
IEnumerator TempoDeAtaque(){ // isto é o tempo em que o inimigo espera entre cada ataque
podeAtacar = false;
yield return new WaitForSeconds (1); //nesta linha pode alterar o tempo
podeAtacar = true;
}
}
Script do Jogador
- Código:
using UnityEngine;
using System.Collections;
using UnityEngine.SceneManagement;
using UnityEngine.UI;
public class Jogador : MonoBehaviour {
// criar um script com o nome Jogador
// colocar este script no seu jogador
public float vidaAtual;
void Awake(){
transform.tag = "Player"; //isto irá por a tag Player no seu jogador
}
void Update () {
if (vidaAtual <= 0) { //se a vida do seu Player ficar igual ou menor que 0 irá carregar a cena "Morte"
SceneManager.LoadScene ("Morte");
}
}
}
Espero que tenham gostado.
Tópicos semelhantes
» [TUTORIAL] Como spawnar inimigos [Tutorial simples]
» [TUTORIAL] IA Simples
» [TUTORIAL] IA Simples Parte 2 (Atirar)
» [TUTORIAL] Systema Simples de Quest
» [TUTORIAL] Demolidor Simples
» [TUTORIAL] IA Simples
» [TUTORIAL] IA Simples Parte 2 (Atirar)
» [TUTORIAL] Systema Simples de Quest
» [TUTORIAL] Demolidor Simples
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos