[TUTORIAL] Inimigo que segue player enquanto player está vendo
+7
dinho
NyanHeavyBR
rafaelllsd
Eddamps88
eduardo9715
Edu Schimdt
MarcosSchultz
11 participantes
Página 1 de 1
[TUTORIAL] Inimigo que segue player enquanto player está vendo
ATENÇÃO, A PRIMEIRA PARTE DO TUTORIAL SERVE NA UNITY 3 OU UNITY 4... SE VOCÊ JÁ ESTIVER USANDO A UNITY 5, UTILIZE OS SCRIPTS DA SEGUNDA PARTE DO TUTORIAL, QUE SÃO ESPECIFICAMENTE DIRECIONADOS A UNITY 5, PARA EVITAR ERROS
Script do Monstro:
Script do player:
SE VOCÊ ESTIVER USANDO A UNITY 5:
Script do Monstro:
Script do Player:
Script do Monstro:
- Código:
var Distance : float;
var Target : Transform;
var lookAtDistance = 25.0;
var chaseRange = 15.0;
var attackRange = 1.5;
var moveSpeed = 5.0;
var Damping = 6.0;
var attackRepeatTime = 1;
var isVisible : boolean;
var TheDammage = 40;
private var attackTime : float;
var controller : CharacterController;
var gravity : float = 20.0;
private var MoveDirection : Vector3 = Vector3.zero;
var audio4 : AudioClip;
function Start (){
attackTime = Time.time;
isVisible = false;
}
function OnBecameVisible() {
isVisible = true;
}
function OnBecameInvisible() {
isVisible = false;
}
function Update (){
Distance = Vector3.Distance(Target.position, transform.position);
if (Distance < lookAtDistance){
if(isVisible==true){
lookAt();
}
}
if (Distance < attackRange)
{if(isVisible==true){
attack();
}
}
else if (Distance < chaseRange){
if(isVisible==true){
chase ();
}
}
}
function lookAt (){
renderer.material.color = Color.yellow;
var rotation = Quaternion.LookRotation(Target.position - transform.position);
transform.rotation = Quaternion.Slerp(transform.rotation, rotation, Time.deltaTime * Damping);
}
function chase (){
renderer.material.color = Color.red;
moveDirection = transform.forward;
moveDirection *= moveSpeed;
moveDirection.y -= gravity * Time.deltaTime;
controller.Move(moveDirection * Time.deltaTime);
}
function attack (){
if (Time.time > attackTime){
Target.SendMessage("ApplyDammage", TheDammage);
Debug.Log("The Enemy Has Attacked");
attackTime = Time.time + attackRepeatTime;
audio.PlayOneShot(audio4);
transform.Rotate(30,0,0);
}
}
function ApplyDammage (){
chaseRange += 30;
moveSpeed += 2;
lookAtDistance += 40;
}
Script do player:
- Código:
var MaxHealth = 100;
var Health : int;
var audio4 : AudioClip;
function Start (){
Health = MaxHealth;
}
function ApplyDammage (TheDammage : int){
Health -= TheDammage;
if(Health <= 0){
Dead();
audio.PlayOneShot(audio4);
}
}
function Dead(){
transform.Rotate(-50,0,0);
yield WaitForSeconds(2);
Application.LoadLevel("MENU"); // ALTERE O NOME DA CENA DE ACORDO COM A SUA PREFERENCIA
}
function RespawnStats (){
Health = MaxHealth;
}
SE VOCÊ ESTIVER USANDO A UNITY 5:
Script do Monstro:
- Código:
var Distance : float;
var Target : Transform;
var lookAtDistance = 25.0;
var chaseRange = 15.0;
var attackRange = 1.5;
var moveSpeed = 5.0;
var Damping = 6.0;
var attackRepeatTime = 1;
var isVisible : boolean;
var TheDammage = 40;
private var attackTime : float;
var controller : CharacterController;
var gravity : float = 20.0;
private var MoveDirection : Vector3 = Vector3.zero;
var audio4 : AudioClip;
function Start (){
attackTime = Time.time;
isVisible = false;
}
function OnBecameVisible() {
isVisible = true;
}
function OnBecameInvisible() {
isVisible = false;
}
function Update (){
Distance = Vector3.Distance(Target.position, transform.position);
if (Distance < lookAtDistance){
if(isVisible==true){
lookAt();
}
}
if (Distance < attackRange){
if(isVisible==true){
attack();
}
}
else if (Distance < chaseRange){
if(isVisible==true){
chase ();
}
}
}
function lookAt (){
GetComponent.<Renderer>().material.color = Color.yellow;
var rotation = Quaternion.LookRotation(Target.position - transform.position);
transform.rotation = Quaternion.Slerp(transform.rotation, rotation, Time.deltaTime * Damping);
}
function chase (){
GetComponent.<Renderer>().material.color = Color.red;
moveDirection = transform.forward;
moveDirection *= moveSpeed;
moveDirection.y -= gravity * Time.deltaTime;
controller.Move(moveDirection * Time.deltaTime);
}
function attack (){
if (Time.time > attackTime){
Target.SendMessage("ApplyDammage", TheDammage);
Debug.Log("The Enemy Has Attacked");
attackTime = Time.time + attackRepeatTime;
GetComponent.<AudioSource>().PlayOneShot(audio4);
transform.Rotate(30,0,0);
}
}
function ApplyDammage (){
chaseRange += 30;
moveSpeed += 2;
lookAtDistance += 40;
}
Script do Player:
- Código:
var MaxHealth = 100;
var Health : int;
var audio4 : AudioClip;
function Start (){
Health = MaxHealth;
}
function ApplyDammage (TheDammage : int){
Health -= TheDammage;
if(Health <= 0){
Dead();
GetComponent.<AudioSource>().PlayOneShot(audio4);
}
}
function Dead(){
transform.Rotate(-50,0,0);
yield WaitForSeconds(2);
Application.LoadLevel("MENU"); // ALTERE O NOME DA CENA DE ACORDO COM SUA PREFERENCIA
}
function RespawnStats (){
Health = MaxHealth;
}
Última edição por MarcosSchultz em Ter Jun 07, 2016 8:49 pm, editado 2 vez(es)
Re: [TUTORIAL] Inimigo que segue player enquanto player está vendo
Como usar? help :D
Edu Schimdt- Iniciante
- PONTOS : 3581
REPUTAÇÃO : 0
Respeito as regras :
Re: [TUTORIAL] Inimigo que segue player enquanto player está vendo
BOM, primeiramente adicione um characterController no seu INIMIGO
Agora, no script do monstro você tem estas variaveis que dependem de algo:
Na variavel Target, linke o seu Player
Na variavel lookAtDistance ajeite a distancia de percepção do inimigo
Na variavel chaseRange ajeite a distancia que o inimigo começa a te seguir
Na variavel attackRange ajeite a distancia que o inimigo pode te atacar
Na variavel moveSpeed ajeite a velocidade do inimigo
Na variavel Damping ajeite a velocidade de rotação quando o inimigo esta olhando para você
Na variavel attackRepeatTime ajeite o tempo por ataque do inimigo
Na variavel The Damage ajeite o valor do dano que o inimigo irá causar
Na variavel Controller você precisa linkar o character controller que você adicionou no inimigo
Na variavel Gravity, você precisa ajeitar um valor para a gravidade do monstro
Na variavel audio4, você precisa linkar um audio que represente o monstro te atacando
Agora o script do Player...
ele tem estas variaveis dependentes:
Na variavel MaxHealth, arrume o valor máximo de vida que o Player pode ter
na variavel audio4, linke um som de morte ou de dor, algo assim :D
Agora, no script do monstro você tem estas variaveis que dependem de algo:
- Código:
var Target : Transform;
var lookAtDistance = 25.0;
var chaseRange = 15.0;
var attackRange = 1.5;
var moveSpeed = 5.0;
var Damping = 6.0;
var attackRepeatTime = 1;
var TheDammage = 40;
var controller : CharacterController;
var gravity : float = 20.0;
var audio4 : AudioClip;
Na variavel Target, linke o seu Player
Na variavel lookAtDistance ajeite a distancia de percepção do inimigo
Na variavel chaseRange ajeite a distancia que o inimigo começa a te seguir
Na variavel attackRange ajeite a distancia que o inimigo pode te atacar
Na variavel moveSpeed ajeite a velocidade do inimigo
Na variavel Damping ajeite a velocidade de rotação quando o inimigo esta olhando para você
Na variavel attackRepeatTime ajeite o tempo por ataque do inimigo
Na variavel The Damage ajeite o valor do dano que o inimigo irá causar
Na variavel Controller você precisa linkar o character controller que você adicionou no inimigo
Na variavel Gravity, você precisa ajeitar um valor para a gravidade do monstro
Na variavel audio4, você precisa linkar um audio que represente o monstro te atacando
Agora o script do Player...
ele tem estas variaveis dependentes:
- Código:
var MaxHealth = 100;
var audio4 : AudioClip;
Na variavel MaxHealth, arrume o valor máximo de vida que o Player pode ter
na variavel audio4, linke um som de morte ou de dor, algo assim :D
Re: [TUTORIAL] Inimigo que segue player enquanto player está vendo
o inimigo não se movimenta não faz nada vou mandar um print https://2img.net/h/oi62.tinypic.com/34gvpkj.jpg
eduardo9715- Membro
- PONTOS : 3527
REPUTAÇÃO : 0
Respeito as regras :
Re: [TUTORIAL] Inimigo que segue player enquanto player está vendo
tenta ver assim então [url=][/url]
eduardo9715- Membro
- PONTOS : 3527
REPUTAÇÃO : 0
Respeito as regras :
Re: [TUTORIAL] Inimigo que segue player enquanto player está vendo
Você está linkando o character controller do seu Player...
você tem que adicionar 1 character controller ao inimigo e linkar este do proprio inimigo na variavel
você tem que adicionar 1 character controller ao inimigo e linkar este do proprio inimigo na variavel
Re: [TUTORIAL] Inimigo que segue player enquanto player está vendo
não estou seguindo o inimigo não sai do lugar estou usando o unity 5
eduardo9715- Membro
- PONTOS : 3527
REPUTAÇÃO : 0
Respeito as regras :
Re: [TUTORIAL] Inimigo que segue player enquanto player está vendo
Como faço pra.. Quando o inimigo começar a andar, ele executar uma animação?
Edu Schimdt- Iniciante
- PONTOS : 3581
REPUTAÇÃO : 0
Respeito as regras :
Re: [TUTORIAL] Inimigo que segue player enquanto player está vendo
@ eduardo, é por que você não está adicionando character controller no inimigo
@ Edu, depende do metodo que você está querendo utilizar... tem o Animation e o Animator
@ Edu, depende do metodo que você está querendo utilizar... tem o Animation e o Animator
Re: [TUTORIAL] Inimigo que segue player enquanto player está vendo
então cara eu coloquei o character controller do inimigo na variavel como voce pode ver ai ,mas ele não anda e tambem esta flutuando olha o print[url=][/url]
eduardo9715- Membro
- PONTOS : 3527
REPUTAÇÃO : 0
Respeito as regras :
Re: [TUTORIAL] Inimigo que segue player enquanto player está vendo
por que o inimigo está com um " Capsule collider " ??
o proprio character controller já atua como colisor
o proprio character controller já atua como colisor
Re: [TUTORIAL] Inimigo que segue player enquanto player está vendo
então ele ainda não esta me perseguindo ,porem já excluir o capsule collider que realmente não precisava[url=][/url]
eduardo9715- Membro
- PONTOS : 3527
REPUTAÇÃO : 0
Respeito as regras :
eduardo9715- Membro
- PONTOS : 3527
REPUTAÇÃO : 0
Respeito as regras :
Re: [TUTORIAL] Inimigo que segue player enquanto player está vendo
Dê um " maximize on Play "
se qualquer camera estiver vendo o inimigo, até mesmo a camera do editor estiver vendo ele, ele não irá se mecher
NENHUM camera pode estar vendo o inimigo
se qualquer camera estiver vendo o inimigo, até mesmo a camera do editor estiver vendo ele, ele não irá se mecher
NENHUM camera pode estar vendo o inimigo
Re: [TUTORIAL] Inimigo que segue player enquanto player está vendo
como assim nenhuma camera deve esta vendo ele como ,eu posso fazer isso e como dar um maximize on play no unity 5
eduardo9715- Membro
- PONTOS : 3527
REPUTAÇÃO : 0
Respeito as regras :
Re: [TUTORIAL] Inimigo que segue player enquanto player está vendo
o dano não está sendo recebido, pq? (fiz td dieito)
Eddamps88- Iniciante
- PONTOS : 3375
REPUTAÇÃO : 3
Re: [TUTORIAL] Inimigo que segue player enquanto player está vendo
Isso pode parecer uma pergunta meio besta mas, esse script está em JS ou C#??
NyanHeavyBR- MembroAvançado
- PONTOS : 3305
REPUTAÇÃO : 32
Respeito as regras :
Re: [TUTORIAL] Inimigo que segue player enquanto player está vendo
NyanHeavyBR escreveu:Isso pode parecer uma pergunta meio besta mas, esse script está em JS ou C#??
JS.
rafaelllsd- ProgramadorMaster
- PONTOS : 5242
REPUTAÇÃO : 507
Idade : 24
Áreas de atuação : Unity, Audacity, Blender, Gimp, C#, JS, MySQL.
Respeito as regras :
Re: [TUTORIAL] Inimigo que segue player enquanto player está vendo
Imaginei que seria. Obrigado pela resposta!
NyanHeavyBR- MembroAvançado
- PONTOS : 3305
REPUTAÇÃO : 32
Respeito as regras :
Re: [TUTORIAL] Inimigo que segue player enquanto player está vendo
Quero fazer com que o monstro siga o player enquanto o player n esta vendo, teria alguma forma de fazer isso usando este mesmo script?!?!
Última edição por NyanHeavyBR em Sáb Abr 09, 2016 8:16 pm, editado 1 vez(es) (Motivo da edição : Erro de interpretação)
NyanHeavyBR- MembroAvançado
- PONTOS : 3305
REPUTAÇÃO : 32
Respeito as regras :
Re: [TUTORIAL] Inimigo que segue player enquanto player está vendo
Fala aí galera... tenho esse Script em C# que fiz algumas adaptação, ois ainda estou aprendendo programar em C# com as aulas do Marcos. Gostaria de acrescentar , q quando o oponente chegar a uma determinada distancia ele ataca-se acionando o "Animator". Se tiver alguem que possa me ajudar eu agradeço. Valeuuu!!!
Script Inimigo:
Script Inimigo:
- Código:
using UnityEngine;
using System.Collections;
public class EnemyMovement : MonoBehaviour {
Transform player;
NavMeshAgent nav;
// Use this for initialization
void Awake () {
player = GameObject.FindGameObjectWithTag ("Player1").transform;
nav = GetComponent <NavMeshAgent>();
}
// Update is called once per frame
void Update () {
transform.LookAt (player.position);
nav.SetDestination (player.position);
}
}
Re: [TUTORIAL] Inimigo que segue player enquanto player está vendo
Já fez os estados das animações no próprio componente Animator??? conforme o vídeo?
Re: [TUTORIAL] Inimigo que segue player enquanto player está vendo
- Código:
transform.rotation = Quaternion.Slerp (transform.rotation, rotation, Time.deltaTime * Damping);
Boa tarde, estou tentando transferir este código para C#, mas não está reconhecendo o Damping... Alguém sabe como posso subistui-lo?
Agradeço desde já!
poliver216- Iniciante
- PONTOS : 3105
REPUTAÇÃO : 0
Respeito as regras :
Re: [TUTORIAL] Inimigo que segue player enquanto player está vendo
oque esse Damping e uma variável ?
poste o script
poste o script
Weslley- Moderador
- PONTOS : 5727
REPUTAÇÃO : 744
Idade : 26
Áreas de atuação : Inversión, Desarrollo, Juegos e Web
Respeito as regras :
Re: [TUTORIAL] Inimigo que segue player enquanto player está vendo
poliver216 escreveu:
- Código:
transform.rotation = Quaternion.Slerp (transform.rotation, rotation, Time.deltaTime * Damping);
Boa tarde, estou tentando transferir este código para C#, mas não está reconhecendo o Damping... Alguém sabe como posso subistui-lo?
Agradeço desde já!
- Código:
using UnityEngine;
using System.Collections;
public class Teste : MonoBehaviour {
float Distance, attackTime;
public Transform Target;
public float lookAtDistance = 25.0f, chaseRange = 15.0f, attackRange = 1.5f, moveSpeed = 5.0f, Damping = 6.0f, attackRepeatTime = 1.0f, gravity = 20.0f;
bool isVisible;
public int TheDammage = 40;
CharacterController controller;
Vector3 moveDirection = Vector3.zero;
public AudioClip audio4;
void Start (){
attackTime = Time.time;
isVisible = false;
}
void OnBecameVisible() {
isVisible = true;
}
void OnBecameInvisible() {
isVisible = false;
}
void Update (){
Distance = Vector3.Distance(Target.position, transform.position);
if (Distance < lookAtDistance){
if(isVisible==true){
lookAt();
}
}
if (Distance < attackRange){
if(isVisible==true){
attack();
}
}
else if (Distance < chaseRange){
if(isVisible==true){
chase ();
}
}
}
void lookAt (){
GetComponent<Renderer>().material.color = Color.yellow;
var rotation = Quaternion.LookRotation(Target.position - transform.position);
transform.rotation = Quaternion.Slerp(transform.rotation, rotation, Time.deltaTime * Damping);
}
void chase (){
GetComponent<Renderer>().material.color = Color.red;
moveDirection = transform.forward;
moveDirection *= moveSpeed;
moveDirection.y -= gravity * Time.deltaTime;
controller.Move(moveDirection * Time.deltaTime);
}
void attack (){
if (Time.time > attackTime){
Target.SendMessage("ApplyDammage", TheDammage);
Debug.Log("The Enemy Has Attacked");
attackTime = Time.time + attackRepeatTime;
GetComponent<AudioSource>().PlayOneShot(audio4);
transform.Rotate(30,0,0);
}
}
void ApplyDammage (){
chaseRange += 30;
moveSpeed += 2;
lookAtDistance += 40;
}
}
Re: [TUTORIAL] Inimigo que segue player enquanto player está vendo
- Código:
#pragma strict
var Vida = 100;//vida enemigo
var anim : Animator;
var nav : NavMeshAgent;
var player : Transform;//poner objeto al que sigue el enemigo
var vidaPlayer : PlayerVida;//script vida del player
var ataque : int;//vida que saca el enemigo al player al atacar
var AtacBool : boolean;
var character : CharacterController;
var distancia : float;//distancia que hay entre el player y el enemigo
var muerte : int;
var S : boolean;
var sonidoataque : AudioClip;
var sonidoMuerte : AudioClip;
function Start () {
S=true;
muerte = Random.Range (1, 3);
character.enabled = true;
AtacBool = false;
}
function Update () {
//CALCULAR DISTANCIA
distancia = Vector3.Distance(transform.position, player.position);
//SEGUIR AL PLAYER
if(Vida >= 1){// si la vida del enemigo es mayor de 1, el enemigo seguira al player
nav.destination = player.position;
}
if(distancia > 3){// si distancia es mas grande de 3
nav.speed = 2;
anim.SetBool("ataque", false);
}
//ATAQUE
if(distancia < nav.stoppingDistance && AtacBool == false){
nav.speed = 0;
anim.SetBool("ataque", true);
Invoke("Ataque", 1.1);//tiempo que tarda en dar el golpe
AtacBool = true;
Invoke("AtaqueSonido",0.8);
}
//VIDA
if(Vida <=0){
nav.speed = 0;
Invoke("Muerto", 5);//tiempo que tarda en desaparecer una vez a llegado su vida a 0
character.enabled = false;
if(muerte == 1){
anim.SetBool("muerte1", true);
}
if(muerte == 2){
anim.SetBool("muerte2", true);
}
}
if (S==true && Vida <=0){
S=false;
GetComponent.<AudioSource>().PlayOneShot(sonidoMuerte);
}
}
function AtaqueSonido (){
GetComponent.<AudioSource>().PlayOneShot(sonidoataque);
}
function Muerto () {
//Destroy(gameObject); //Opcion1
gameObject.SetActive(false); //Opcion2
}
function Ataque () {
Invoke("AF", 1.5);
if(distancia <= 4 && AtacBool == true){
vidaPlayer.vida -= ataque;
}
}
function AF () {
AtacBool = false;
}
function FV (Dano : int) {
Vida -= Dano;
}
porem nao estou conseguindo modifica-lo para que o inimigo (zombie) só me ataque quando me ver, sera que alguém tem alguma idéia de como me ajudar...
se quiserem tenho os script completo de armas e monstros completos , mas meu unico problema e nao conseguir fazer que inimigo olhe para o player.
bymaxbig- Membro
- PONTOS : 3264
REPUTAÇÃO : 5
Idade : 25
Respeito as regras :
Re: [TUTORIAL] Inimigo que segue player enquanto player está vendo
bymaxbig escreveu:Ola amigos, esse e meu script de fazer o inimigo te atacar e de animaçoes e tals...
- Código:
#pragma strict
var Vida = 100;//vida enemigo
var anim : Animator;
var nav : NavMeshAgent;
var player : Transform;//poner objeto al que sigue el enemigo
var vidaPlayer : PlayerVida;//script vida del player
var ataque : int;//vida que saca el enemigo al player al atacar
var AtacBool : boolean;
var character : CharacterController;
var distancia : float;//distancia que hay entre el player y el enemigo
var muerte : int;
var S : boolean;
var sonidoataque : AudioClip;
var sonidoMuerte : AudioClip;
function Start () {
S=true;
muerte = Random.Range (1, 3);
character.enabled = true;
AtacBool = false;
}
function Update () {
//CALCULAR DISTANCIA
distancia = Vector3.Distance(transform.position, player.position);
//SEGUIR AL PLAYER
if(Vida >= 1){// si la vida del enemigo es mayor de 1, el enemigo seguira al player
nav.destination = player.position;
}
if(distancia > 3){// si distancia es mas grande de 3
nav.speed = 2;
anim.SetBool("ataque", false);
}
//ATAQUE
if(distancia < nav.stoppingDistance && AtacBool == false){
nav.speed = 0;
anim.SetBool("ataque", true);
Invoke("Ataque", 1.1);//tiempo que tarda en dar el golpe
AtacBool = true;
Invoke("AtaqueSonido",0.8);
}
//VIDA
if(Vida <=0){
nav.speed = 0;
Invoke("Muerto", 5);//tiempo que tarda en desaparecer una vez a llegado su vida a 0
character.enabled = false;
if(muerte == 1){
anim.SetBool("muerte1", true);
}
if(muerte == 2){
anim.SetBool("muerte2", true);
}
}
if (S==true && Vida <=0){
S=false;
GetComponent.<AudioSource>().PlayOneShot(sonidoMuerte);
}
}
function AtaqueSonido (){
GetComponent.<AudioSource>().PlayOneShot(sonidoataque);
}
function Muerto () {
//Destroy(gameObject); //Opcion1
gameObject.SetActive(false); //Opcion2
}
function Ataque () {
Invoke("AF", 1.5);
if(distancia <= 4 && AtacBool == true){
vidaPlayer.vida -= ataque;
}
}
function AF () {
AtacBool = false;
}
function FV (Dano : int) {
Vida -= Dano;
}
porem nao estou conseguindo modifica-lo para que o inimigo (zombie) só me ataque quando me ver, sera que alguém tem alguma idéia de como me ajudar...
se quiserem tenho os script completo de armas e monstros completos , mas meu unico problema e nao conseguir fazer que inimigo olhe para o player.
Tem como criar um tópico específico para esta sua dúvida? Postando os detalhes, o script e tudo mais.
Re: [TUTORIAL] Inimigo que segue player enquanto player está vendo
não posso criar tópicos, não sou administrador :bounce: :bounce: :bounce: :bounce:MarcosSchultz escreveu:bymaxbig escreveu:Ola amigos, esse e meu script de fazer o inimigo te atacar e de animaçoes e tals...
- Código:
#pragma strict
var Vida = 100;//vida enemigo
var anim : Animator;
var nav : NavMeshAgent;
var player : Transform;//poner objeto al que sigue el enemigo
var vidaPlayer : PlayerVida;//script vida del player
var ataque : int;//vida que saca el enemigo al player al atacar
var AtacBool : boolean;
var character : CharacterController;
var distancia : float;//distancia que hay entre el player y el enemigo
var muerte : int;
var S : boolean;
var sonidoataque : AudioClip;
var sonidoMuerte : AudioClip;
function Start () {
S=true;
muerte = Random.Range (1, 3);
character.enabled = true;
AtacBool = false;
}
function Update () {
//CALCULAR DISTANCIA
distancia = Vector3.Distance(transform.position, player.position);
//SEGUIR AL PLAYER
if(Vida >= 1){// si la vida del enemigo es mayor de 1, el enemigo seguira al player
nav.destination = player.position;
}
if(distancia > 3){// si distancia es mas grande de 3
nav.speed = 2;
anim.SetBool("ataque", false);
}
//ATAQUE
if(distancia < nav.stoppingDistance && AtacBool == false){
nav.speed = 0;
anim.SetBool("ataque", true);
Invoke("Ataque", 1.1);//tiempo que tarda en dar el golpe
AtacBool = true;
Invoke("AtaqueSonido",0.8);
}
//VIDA
if(Vida <=0){
nav.speed = 0;
Invoke("Muerto", 5);//tiempo que tarda en desaparecer una vez a llegado su vida a 0
character.enabled = false;
if(muerte == 1){
anim.SetBool("muerte1", true);
}
if(muerte == 2){
anim.SetBool("muerte2", true);
}
}
if (S==true && Vida <=0){
S=false;
GetComponent.<AudioSource>().PlayOneShot(sonidoMuerte);
}
}
function AtaqueSonido (){
GetComponent.<AudioSource>().PlayOneShot(sonidoataque);
}
function Muerto () {
//Destroy(gameObject); //Opcion1
gameObject.SetActive(false); //Opcion2
}
function Ataque () {
Invoke("AF", 1.5);
if(distancia <= 4 && AtacBool == true){
vidaPlayer.vida -= ataque;
}
}
function AF () {
AtacBool = false;
}
function FV (Dano : int) {
Vida -= Dano;
}
porem nao estou conseguindo modifica-lo para que o inimigo (zombie) só me ataque quando me ver, sera que alguém tem alguma idéia de como me ajudar...
se quiserem tenho os script completo de armas e monstros completos , mas meu unico problema e nao conseguir fazer que inimigo olhe para o player.
Tem como criar um tópico específico para esta sua dúvida? Postando os detalhes, o script e tudo mais.
bymaxbig- Membro
- PONTOS : 3264
REPUTAÇÃO : 5
Idade : 25
Respeito as regras :
Re: [TUTORIAL] Inimigo que segue player enquanto player está vendo
Claro que pode, basta visitar a área "Dúvidas em geral" e criar um tópico.
Existem áreas bloqueadas para membros e áreas liberadas... basta criar na área correta.
Existem áreas bloqueadas para membros e áreas liberadas... basta criar na área correta.
Re: [TUTORIAL] Inimigo que segue player enquanto player está vendo
Só uma perguntinha, teria que ter um comando para o player ou isso vale para o playerMarcosSchultz escreveu:poliver216 escreveu:
- Código:
transform.rotation = Quaternion.Slerp (transform.rotation, rotation, Time.deltaTime * Damping);
Boa tarde, estou tentando transferir este código para C#, mas não está reconhecendo o Damping... Alguém sabe como posso subistui-lo?
Agradeço desde já!
- Código:
using UnityEngine;
using System.Collections;
public class Teste : MonoBehaviour {
float Distance, attackTime;
public Transform Target;
public float lookAtDistance = 25.0f, chaseRange = 15.0f, attackRange = 1.5f, moveSpeed = 5.0f, Damping = 6.0f, attackRepeatTime = 1.0f, gravity = 20.0f;
bool isVisible;
public int TheDammage = 40;
CharacterController controller;
Vector3 moveDirection = Vector3.zero;
public AudioClip audio4;
void Start (){
attackTime = Time.time;
isVisible = false;
}
void OnBecameVisible() {
isVisible = true;
}
void OnBecameInvisible() {
isVisible = false;
}
void Update (){
Distance = Vector3.Distance(Target.position, transform.position);
if (Distance < lookAtDistance){
if(isVisible==true){
lookAt();
}
}
if (Distance < attackRange){
if(isVisible==true){
attack();
}
}
else if (Distance < chaseRange){
if(isVisible==true){
chase ();
}
}
}
void lookAt (){
GetComponent<Renderer>().material.color = Color.yellow;
var rotation = Quaternion.LookRotation(Target.position - transform.position);
transform.rotation = Quaternion.Slerp(transform.rotation, rotation, Time.deltaTime * Damping);
}
void chase (){
GetComponent<Renderer>().material.color = Color.red;
moveDirection = transform.forward;
moveDirection *= moveSpeed;
moveDirection.y -= gravity * Time.deltaTime;
controller.Move(moveDirection * Time.deltaTime);
}
void attack (){
if (Time.time > attackTime){
Target.SendMessage("ApplyDammage", TheDammage);
Debug.Log("The Enemy Has Attacked");
attackTime = Time.time + attackRepeatTime;
GetComponent<AudioSource>().PlayOneShot(audio4);
transform.Rotate(30,0,0);
}
}
void ApplyDammage (){
chaseRange += 30;
moveSpeed += 2;
lookAtDistance += 40;
}
}
?
FantasmaFX- Iniciante
- PONTOS : 1959
REPUTAÇÃO : 0
Respeito as regras :
Re: [TUTORIAL] Inimigo que segue player enquanto player está vendo
poderia especificar melhor a sua dúvida? não entendi direito.
Tópicos semelhantes
» [TUTORIAL] Camera que segue o Player ( estilo GTA )
» [TUTORIAL] Camera que segue o Player para jogos 2D e 2.5D
» [TUTORIAL] Inimigo seguir e atacar Player ao encostar
» PLAYER NAO MOVER ENQUANTO ESTA ABAIXADO
» Inimigo segue o player mesmo morto!!!
» [TUTORIAL] Camera que segue o Player para jogos 2D e 2.5D
» [TUTORIAL] Inimigo seguir e atacar Player ao encostar
» PLAYER NAO MOVER ENQUANTO ESTA ABAIXADO
» Inimigo segue o player mesmo morto!!!
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos