navmeshagent Duvida sobre a distancia percorrida
2 participantes
Página 1 de 1
navmeshagent Duvida sobre a distancia percorrida
public class HabilidadesAtiva : MonoBehaviour
{
public Button BtnAtqBasico;
public Button BtnSkill1;
public Button BtnSkill2;
public Button BtnSkill3;
public Button BtnSkill4;
public NavMeshAgent jogador;
Animator Anim;
Transform Objetivo;
public Jogador Player;
void Start ()
{
BtnAtqBasico.onClick = new Button.ButtonClickedEvent();
BtnSkill1.onClick = new Button.ButtonClickedEvent();
BtnSkill2.onClick = new Button.ButtonClickedEvent();
BtnSkill3.onClick = new Button.ButtonClickedEvent();
BtnSkill4.onClick = new Button.ButtonClickedEvent();
BtnAtqBasico.onClick.AddListener(() => AtqBasico());
BtnSkill1.onClick.AddListener(() => Habilidade1());
BtnSkill2.onClick.AddListener(() => Habilidade2());
BtnSkill3.onClick.AddListener(() => Habilidade3());
BtnSkill4.onClick.AddListener(() => Habilidade4());
NavMeshAgent jogador = GetComponent<NavMeshAgent>();
Animator Anim = GetComponent<Animator>();
jogador.updateRotation = false;
}
public IEnumerator Atacar(Transform Objetivo)
{
jogador.speed = 15;
Vector3 PosInicial = transform.position;
Quaternion RotInicial = transform.rotation;
Objetivo = Inimigo.Instancia.transform;
transform.LookAt(Objetivo.transform.position);
jogador.SetDestination(Objetivo.position);
http://Anim.SetTrigger("Correr", 1);
if (Vector3.Distance(transform.position, Objetivo.position) > 2)
{
jogador.speed = 0;
http://Anim.SetTrigger("Correr", 0);
yield return new WaitForSeconds(1);
http://Anim.SetTrigger(Jogador.Instancia.AnimacaoTrigger);
Inimigo.Instancia.Vida -= Jogador.Instancia.Dano;
Jogador.Instancia.Energia -= Jogador.Instancia.CustoDeEnergia;
Player.Energia += Player.EnergiaPorTurno;
Player.Vida += Player.VidaPorHit + Player.VidaPorTurno;
jogador.speed = 15;
yield return new WaitForSeconds(1);
if (Inimigo.Instancia == null)
{
yield return null;
transform.LookAt(PosInicial);
jogador.SetDestination(PosInicial);
}
else
{
http://Anim.SetTrigger("Correr", 1);
if ((Vector3.Distance(transform.position, PosInicial) > 0.00001f))
{
jogador.speed = 0;
transform.LookAt(PosInicial);
jogador.SetDestination(PosInicial);
Inimigo.Instancia.inimigo = true;
transform.LookAt(Objetivo.position);
http://Anim.SetTrigger("Correr", 0);
}
}
}
jogador.speed = 15;
yield return null;
}
public void AtqBasico()
{
Player.CustoDeEnergia = 0;
Jogador.Instancia.AnimacaoTrigger = "Ataque1";
Player.Dano = (Player.Ataque / 100) * (100 - Inimigo.Instancia.RedDano);
if (Player.Energia >= Player.CustoDeEnergia)
{
StartCoroutine (Atacar(Objetivo));
}
else
{
}
}
}
Gostaria de saber porque meu player demora para começar a se mover e pq ele naum vai até próximo ao inimigo (OBS: o script naum tem nem um erro na execução)
Desculpe essa pergunta e pq eu sou novo em c# e tive q adaptar esse código a e naum entendo muito os porquês ^~.
{
public Button BtnAtqBasico;
public Button BtnSkill1;
public Button BtnSkill2;
public Button BtnSkill3;
public Button BtnSkill4;
public NavMeshAgent jogador;
Animator Anim;
Transform Objetivo;
public Jogador Player;
void Start ()
{
BtnAtqBasico.onClick = new Button.ButtonClickedEvent();
BtnSkill1.onClick = new Button.ButtonClickedEvent();
BtnSkill2.onClick = new Button.ButtonClickedEvent();
BtnSkill3.onClick = new Button.ButtonClickedEvent();
BtnSkill4.onClick = new Button.ButtonClickedEvent();
BtnAtqBasico.onClick.AddListener(() => AtqBasico());
BtnSkill1.onClick.AddListener(() => Habilidade1());
BtnSkill2.onClick.AddListener(() => Habilidade2());
BtnSkill3.onClick.AddListener(() => Habilidade3());
BtnSkill4.onClick.AddListener(() => Habilidade4());
NavMeshAgent jogador = GetComponent<NavMeshAgent>();
Animator Anim = GetComponent<Animator>();
jogador.updateRotation = false;
}
public IEnumerator Atacar(Transform Objetivo)
{
jogador.speed = 15;
Vector3 PosInicial = transform.position;
Quaternion RotInicial = transform.rotation;
Objetivo = Inimigo.Instancia.transform;
transform.LookAt(Objetivo.transform.position);
jogador.SetDestination(Objetivo.position);
http://Anim.SetTrigger("Correr", 1);
if (Vector3.Distance(transform.position, Objetivo.position) > 2)
{
jogador.speed = 0;
http://Anim.SetTrigger("Correr", 0);
yield return new WaitForSeconds(1);
http://Anim.SetTrigger(Jogador.Instancia.AnimacaoTrigger);
Inimigo.Instancia.Vida -= Jogador.Instancia.Dano;
Jogador.Instancia.Energia -= Jogador.Instancia.CustoDeEnergia;
Player.Energia += Player.EnergiaPorTurno;
Player.Vida += Player.VidaPorHit + Player.VidaPorTurno;
jogador.speed = 15;
yield return new WaitForSeconds(1);
if (Inimigo.Instancia == null)
{
yield return null;
transform.LookAt(PosInicial);
jogador.SetDestination(PosInicial);
}
else
{
http://Anim.SetTrigger("Correr", 1);
if ((Vector3.Distance(transform.position, PosInicial) > 0.00001f))
{
jogador.speed = 0;
transform.LookAt(PosInicial);
jogador.SetDestination(PosInicial);
Inimigo.Instancia.inimigo = true;
transform.LookAt(Objetivo.position);
http://Anim.SetTrigger("Correr", 0);
}
}
}
jogador.speed = 15;
yield return null;
}
public void AtqBasico()
{
Player.CustoDeEnergia = 0;
Jogador.Instancia.AnimacaoTrigger = "Ataque1";
Player.Dano = (Player.Ataque / 100) * (100 - Inimigo.Instancia.RedDano);
if (Player.Energia >= Player.CustoDeEnergia)
{
StartCoroutine (Atacar(Objetivo));
}
else
{
}
}
}
Gostaria de saber porque meu player demora para começar a se mover e pq ele naum vai até próximo ao inimigo (OBS: o script naum tem nem um erro na execução)
Desculpe essa pergunta e pq eu sou novo em c# e tive q adaptar esse código a e naum entendo muito os porquês ^~.
UesleiUsl- Iniciante
- PONTOS : 2181
REPUTAÇÃO : 3
Respeito as regras :
Re: navmeshagent Duvida sobre a distancia percorrida
Por favor, diga quais são as configurações do seu NavMeshAgent
Tópicos semelhantes
» Duvida com NavMeshAgent
» [Dúvida]Erro "UnityEngine.AI.NavMeshAgent.Stop()' is obsolete" como resolver ?
» Calculando a distância percorrida do addforce
» [TUTORIAL] Descobrir a distância percorrida por um objeto (com Rigidbody)
» NavMeshAgent
» [Dúvida]Erro "UnityEngine.AI.NavMeshAgent.Stop()' is obsolete" como resolver ?
» Calculando a distância percorrida do addforce
» [TUTORIAL] Descobrir a distância percorrida por um objeto (com Rigidbody)
» NavMeshAgent
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos