[RESOLVIDO] AJUDA ERRO COM INIMIGO
2 participantes
SchultzGames :: UNITY 3D :: Resolvidos
Página 1 de 1
[RESOLVIDO] AJUDA ERRO COM INIMIGO
Bom dia galera, vim aqui pedir a ajuda de vocês pois esta acontecendo algo com Ai do meu jogo que não estou conseguindo resolver, por algum motivo quando me aproximo do inimigo ele meio que fica virando pra trás como se o meu player tivesse empurrando ele ou algo do tipo, acho que tem a ver com um script de um tutorial que estou acompanhando pois quando desativo ele não acontece mais, deixarei um vídeo a baixo mostrando melhor o que acontece...
O objetivo do script é fazer com que o inimigo só persiga o player quando não tiver olhando pra ele, se puderem me ajudar desde já agradeço!!!
- Código:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class slenderman : MonoBehaviour {
public Transform objetivo;
float pantalla = 0.8f;
Rigidbody rb;
public bool Visible = false;
public float velocidad = 2;
public float punto;
public Animator anim;
// Use this for initialization
void Start () {
rb = GetComponent<Rigidbody>();
}
// Update is called once per frame
void Update () {
Esvisible();
transform.LookAt(objetivo.position);
if (!Visible)
{
// rb.MovePosition(transform.position + transform.forward * Time.deltaTime*velocidad);
transform.position = transform.position + transform.forward * velocidad * Time.deltaTime;
anim.SetBool ("caminando", true);
//anim.speed = 0.3f;
}
else
{
anim.SetBool("caminando",false);
//anim.speed = 1f;
}
}
void Esvisible()
{
Vector3 delante = objetivo.forward;
Vector3 otro = (this.transform.position - objetivo.position).normalized;
punto = Vector3.Dot(delante, otro);
if (punto > pantalla)
{
Visible = true;
}
else
{
Visible = false;
}
}
}
O objetivo do script é fazer com que o inimigo só persiga o player quando não tiver olhando pra ele, se puderem me ajudar desde já agradeço!!!
Re: [RESOLVIDO] AJUDA ERRO COM INIMIGO
O problema é que o LookAt() gira seu inimigo com base no ponto de origem do seu personagem, então se esses pontos estiverem em alturas diferentes, o boneco se inclina.
Ao invés de usar a posição do player diretamente no LookAt(), tente assim:
Dessa forma, a altura que é passada pro lookAt é a mesma do inimigo resolvendo o problema da inclinação quando o player está próximo dele.
#edit
Adicionado o "transform", como tinha copiado do objetivo, acabei esquecendo...
Ao invés de usar a posição do player diretamente no LookAt(), tente assim:
- Código:
Vector3 lookPos = new Vector3(objetivo.position.x, this.transform.position.y, objetivo.position.z);
transform.LookAt(lookPos);
Dessa forma, a altura que é passada pro lookAt é a mesma do inimigo resolvendo o problema da inclinação quando o player está próximo dele.
#edit
Adicionado o "transform", como tinha copiado do objetivo, acabei esquecendo...
Última edição por Isabela em Qui Mar 14, 2019 5:04 pm, editado 1 vez(es)
Isabela- Avançado
- PONTOS : 2836
REPUTAÇÃO : 260
Idade : 24
Respeito as regras :
Re: [RESOLVIDO] AJUDA ERRO COM INIMIGO
Isabela, apareceu o seguinte erro: Assets/Slenderman 1/slenderman.cs(24,59): error CS1061: Type `slenderman' does not contain a definition for `position' and no extension method `position' of type `slenderman' could be found. Are you missing an assembly reference?Isabela escreveu:O problema é que o LookAt() gira seu inimigo com base no ponto de origem do seu personagem, então se esses pontos estiverem em alturas diferentes, o boneco se inclina.
Ao invés de usar a posição do player diretamente no LookAt(), tente assim:
- Código:
Vector3 lookPos = new Vector3(objetivo.position.x, this.position.y, objetivo.position.z);
transform.LookAt(lookPos);
Dessa forma, a altura que é passada pro lookAt é a mesma do inimigo resolvendo o problema da inclinação quando o player está próximo dele.
Não sei se usei a linha de codigo que me passou corretamente, pois em programação ainda eu ainda tô engatinhando kkk, mas se puder me dar mais essa força aí desde já agradeço!!!
Re: [RESOLVIDO] AJUDA ERRO COM INIMIGO
Diego Felix escreveu:Isabela, apareceu o seguinte erro: Assets/Slenderman 1/slenderman.cs(24,59): error CS1061: Type `slenderman' does not contain a definition for `position' and no extension method `position' of type `slenderman' could be found. Are you missing an assembly reference?Isabela escreveu:O problema é que o LookAt() gira seu inimigo com base no ponto de origem do seu personagem, então se esses pontos estiverem em alturas diferentes, o boneco se inclina.
Ao invés de usar a posição do player diretamente no LookAt(), tente assim:
- Código:
Vector3 lookPos = new Vector3(objetivo.position.x, this.position.y, objetivo.position.z);
transform.LookAt(lookPos);
Dessa forma, a altura que é passada pro lookAt é a mesma do inimigo resolvendo o problema da inclinação quando o player está próximo dele.
Não sei se usei a linha de codigo que me passou corretamente, pois em programação ainda eu ainda tô engatinhando kkk, mas se puder me dar mais essa força aí desde já agradeço!!!
- Código:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class slenderman : MonoBehaviour {
public Transform objetivo;
float pantalla = 0.8f;
Rigidbody rb;
public bool Visible = false;
public float velocidad = 2;
public float punto;
public Animator anim;
// Use this for initialization
void Start () {
rb = GetComponent<Rigidbody>();
}
// Update is called once per frame
void Update () {
Esvisible();
Vector3 lookPos = new Vector3(objetivo.position.x, this.position.y, objetivo.position.z);
transform.LookAt(lookPos);
if (!Visible)
{
// rb.MovePosition(transform.position + transform.forward * Time.deltaTime*velocidad);
transform.position = transform.position + transform.forward * velocidad * Time.deltaTime;
anim.SetBool ("caminando", true);
//anim.speed = 0.3f;
}
else
{
anim.SetBool("caminando",false);
//anim.speed = 1f;
}
}
void Esvisible()
{
Vector3 delante = objetivo.forward;
Vector3 otro = (this.transform.position - objetivo.position).normalized;
punto = Vector3.Dot(delante, otro);
if (punto > pantalla)
{
Visible = true;
}
else
{
Visible = false;
}
}
}
Ficou assim...
Re: [RESOLVIDO] AJUDA ERRO COM INIMIGO
Diego Felix escreveu:
- Código:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class slenderman : MonoBehaviour {
public Transform objetivo;
float pantalla = 0.8f;
Rigidbody rb;
public bool Visible = false;
public float velocidad = 2;
public float punto;
public Animator anim;
// Use this for initialization
void Start () {
rb = GetComponent<Rigidbody>();
}
// Update is called once per frame
void Update () {
Esvisible();
Vector3 lookPos = new Vector3(objetivo.position.x, this.transform.position.y, objetivo.position.z);
transform.LookAt(lookPos);
if (!Visible)
{
// rb.MovePosition(transform.position + transform.forward * Time.deltaTime*velocidad);
transform.position = transform.position + transform.forward * velocidad * Time.deltaTime;
anim.SetBool ("caminando", true);
//anim.speed = 0.3f;
}
else
{
anim.SetBool("caminando",false);
//anim.speed = 1f;
}
}
void Esvisible()
{
Vector3 delante = objetivo.forward;
Vector3 otro = (this.transform.position - objetivo.position).normalized;
punto = Vector3.Dot(delante, otro);
if (punto > pantalla)
{
Visible = true;
}
else
{
Visible = false;
}
}
}
Altere dessa forma ^
Caso queira é só olhar na minha primeira resposta, adicionei apenas o "transform" no segundo campo do Vector3.
como tinha copiado do objetivo, não percebi que faltava o transform, e por estar digitando direto aqui não acusou o erro.
Hoje aprendemos que não devemos ficar dependentes do intellisense. huahuaha
Uhh fiz 666 pontos hoje, Isah illuminati confirmed!
Isabela- Avançado
- PONTOS : 2836
REPUTAÇÃO : 260
Idade : 24
Respeito as regras :
Re: [RESOLVIDO] AJUDA ERRO COM INIMIGO
Que nd Isabela, errar é humano sabe bem disso kkk, já sou bastante grato só por ter me ajudado, eu é q não entendo praticamente nd de programação, analfabeto dos scripts, vou até por no meu perfil essa "qualidade" kkkkkk e é isso, brincadeiras a parte eu agradeço muito mesmo pela ajuda, Vlw Tmj, abraço!!!Isabela escreveu:Diego Felix escreveu:
- Código:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class slenderman : MonoBehaviour {
public Transform objetivo;
float pantalla = 0.8f;
Rigidbody rb;
public bool Visible = false;
public float velocidad = 2;
public float punto;
public Animator anim;
// Use this for initialization
void Start () {
rb = GetComponent<Rigidbody>();
}
// Update is called once per frame
void Update () {
Esvisible();
Vector3 lookPos = new Vector3(objetivo.position.x, this.transform.position.y, objetivo.position.z);
transform.LookAt(lookPos);
if (!Visible)
{
// rb.MovePosition(transform.position + transform.forward * Time.deltaTime*velocidad);
transform.position = transform.position + transform.forward * velocidad * Time.deltaTime;
anim.SetBool ("caminando", true);
//anim.speed = 0.3f;
}
else
{
anim.SetBool("caminando",false);
//anim.speed = 1f;
}
}
void Esvisible()
{
Vector3 delante = objetivo.forward;
Vector3 otro = (this.transform.position - objetivo.position).normalized;
punto = Vector3.Dot(delante, otro);
if (punto > pantalla)
{
Visible = true;
}
else
{
Visible = false;
}
}
}
Altere dessa forma ^
Caso queira é só olhar na minha primeira resposta, adicionei apenas o "transform" no segundo campo do Vector3.
como tinha copiado do objetivo, não percebi que faltava o transform, e por estar digitando direto aqui não acusou o erro.
Hoje aprendemos que não devemos ficar dependentes do intellisense. huahuaha
Uhh fiz 666 pontos hoje, Isah illuminati confirmed!
Re: [RESOLVIDO] AJUDA ERRO COM INIMIGO
Alguém põe o post como resolvido pra mim por favor, obrigado!!!
Tópicos semelhantes
» [RESOLVIDO] Erro criando IA inimigo
» [RESOLVIDO] to com um java script de inimigo mas ta dando erro
» [RESOLVIDO] Ajuda com script para matar Inimigo no Jogo
» [RESOLVIDO] Erro com bala ...AJUDA
» [RESOLVIDO] Ajuda com erro no IEnumerator!
» [RESOLVIDO] to com um java script de inimigo mas ta dando erro
» [RESOLVIDO] Ajuda com script para matar Inimigo no Jogo
» [RESOLVIDO] Erro com bala ...AJUDA
» [RESOLVIDO] Ajuda com erro no IEnumerator!
SchultzGames :: UNITY 3D :: Resolvidos
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos