Como fazer parar de seguir em uma distancia determinada
2 participantes
SchultzGames :: UNITY 3D :: Resolvidos
Página 1 de 1
Como fazer parar de seguir em uma distancia determinada
queria fazer meu inimigo parar de seguir em uma distancia de 1 Metro para poder fazer o atack de espada
Alguem tem alguma ideia " ele ja segue o personagem mas acaba entrando dentro dele" vlw
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class IaOrk1 : MonoBehaviour {
float campo;
public Transform player;
public AnimationClip Idle;
public AnimationClip WalkAnim;
public Animation animationCharacter;
// Use this for initialization
void Start () {
}
// Update is called once per frame
void Update () {
campo = Vector3.Distance (transform.position, player.transform.position);
if (campo < 10 ) {
olhar ();
seguir ();
animationCharacter.CrossFade (WalkAnim.name);
}
if (campo <2) {
olhar ();
animationCharacter.CrossFade (Idle.name);
}
}
void olhar () {
Quaternion visao;
visao = Quaternion.LookRotation (player.position - transform.position);
transform.rotation = Quaternion.Slerp (transform.rotation, visao, Time.deltaTime*6f);
transform.Translate (Vector3.forward * 1 * Time.deltaTime);
}
void seguir () {
transform.Translate (Vector3.forward * 2 * Time.deltaTime);
}
}
Alguem tem alguma ideia " ele ja segue o personagem mas acaba entrando dentro dele" vlw
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class IaOrk1 : MonoBehaviour {
float campo;
public Transform player;
public AnimationClip Idle;
public AnimationClip WalkAnim;
public Animation animationCharacter;
// Use this for initialization
void Start () {
}
// Update is called once per frame
void Update () {
campo = Vector3.Distance (transform.position, player.transform.position);
if (campo < 10 ) {
olhar ();
seguir ();
animationCharacter.CrossFade (WalkAnim.name);
}
if (campo <2) {
olhar ();
animationCharacter.CrossFade (Idle.name);
}
}
void olhar () {
Quaternion visao;
visao = Quaternion.LookRotation (player.position - transform.position);
transform.rotation = Quaternion.Slerp (transform.rotation, visao, Time.deltaTime*6f);
transform.Translate (Vector3.forward * 1 * Time.deltaTime);
}
void seguir () {
transform.Translate (Vector3.forward * 2 * Time.deltaTime);
}
}
bravoent- Avançado
- PONTOS : 2916
REPUTAÇÃO : 16
Respeito as regras :
Re: Como fazer parar de seguir em uma distancia determinada
A Distância é Pegada aqui : campo = Vector3.Distance (transform.position, player.transform.position);
então se Quiser Limitar essa Distancia...Simplesmente Mude as Condições aqui: if (campo < 10 ) {
se quiser um Valor Fixo use : if (campo == 10 ) { então se a Distancia for Igual a 10, Acontece Algo
mas eu sinceramente não Aconselho pelo fato do Vector3.Distance ser uma float!
será muito raro vc conseguir esses 10 Cravados !
E se quiser Continuar Usando Assim, Aconselho Converter essa float para int usando o (int) antes de qualquer float! Espero que isso te Ajude! :D
então se Quiser Limitar essa Distancia...Simplesmente Mude as Condições aqui: if (campo < 10 ) {
se quiser um Valor Fixo use : if (campo == 10 ) { então se a Distancia for Igual a 10, Acontece Algo
mas eu sinceramente não Aconselho pelo fato do Vector3.Distance ser uma float!
será muito raro vc conseguir esses 10 Cravados !
E se quiser Continuar Usando Assim, Aconselho Converter essa float para int usando o (int) antes de qualquer float! Espero que isso te Ajude! :D
Re: Como fazer parar de seguir em uma distancia determinada
opa entao eu sou novo em c# nao consegui fazer dessa maneira , mas esclarece uma coisa, na primeira if, teria como eu falar tipo assim "se o campo for menor q 10 , e maior q 3 execultar void Seguir(), pq no segundo if estaria "Se campo for Menor que 3 execultar void Olhar()AndyShow escreveu:A Distância é Pegada aqui : campo = Vector3.Distance (transform.position, player.transform.position);
então se Quiser Limitar essa Distancia...Simplesmente Mude as Condições aqui: if (campo < 10 ) {
se quiser um Valor Fixo use : if (campo == 10 ) { então se a Distancia for Igual a 10, Acontece Algo
mas eu sinceramente não Aconselho pelo fato do Vector3.Distance ser uma float!
será muito raro vc conseguir esses 10 Cravados !
E se quiser Continuar Usando Assim, Aconselho Converter essa float para int usando o (int) antes de qualquer float! Espero que isso te Ajude! :D
- Porque ai quando o char entrasse 3 metros de distancia o Monstro executaria a Void Olhar . Ficaria parado E com animaçao De atacar.
bravoent- Avançado
- PONTOS : 2916
REPUTAÇÃO : 16
Respeito as regras :
Re: Como fazer parar de seguir em uma distancia determinada
cara consegui os codigos com esse raciocínio e deu certo so foi Colocae If (Campo <10 & Campo>3 ) deu certobravoent escreveu:opa entao eu sou novo em c# nao consegui fazer dessa maneira , mas esclarece uma coisa, na primeira if, teria como eu falar tipo assim "se o campo for menor q 10 , e maior q 3 execultar void Seguir(), pq no segundo if estaria "Se campo for Menor que 3 execultar void Olhar()AndyShow escreveu:A Distância é Pegada aqui : campo = Vector3.Distance (transform.position, player.transform.position);
então se Quiser Limitar essa Distancia...Simplesmente Mude as Condições aqui: if (campo < 10 ) {
se quiser um Valor Fixo use : if (campo == 10 ) { então se a Distancia for Igual a 10, Acontece Algo
mas eu sinceramente não Aconselho pelo fato do Vector3.Distance ser uma float!
será muito raro vc conseguir esses 10 Cravados !
E se quiser Continuar Usando Assim, Aconselho Converter essa float para int usando o (int) antes de qualquer float! Espero que isso te Ajude! :D
- Porque ai quando o char entrasse 3 metros de distancia o Monstro executaria a Void Olhar . Ficaria parado E com animaçao De atacar.
to com uma duvida sobre o dano do inimigo
https://www.schultzgames.com/t3907-dano-no-player-ajuda-erro#27240
Devagarzinho to conseguindo aprender vlw se poder da uma ajuda la
bravoent- Avançado
- PONTOS : 2916
REPUTAÇÃO : 16
Respeito as regras :
Tópicos semelhantes
» [TUTORIAL] Como fazer um sistema de PET, para ele seguir você e parar ao apertar 'E'
» Como fazer a câmera parar de seguir a altura do pulo do jogador no script SmoothFollow dos Assets Standards da Unity ?
» TravarPersonagem em um angulo por determinada ação
» Intanciar em posiçao determinada
» Personagem acionar animação após cair / saltar de determinada altura
» Como fazer a câmera parar de seguir a altura do pulo do jogador no script SmoothFollow dos Assets Standards da Unity ?
» TravarPersonagem em um angulo por determinada ação
» Intanciar em posiçao determinada
» Personagem acionar animação após cair / saltar de determinada altura
SchultzGames :: UNITY 3D :: Resolvidos
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos