SchultzGames
Para tirar dúvidas, crie um tópico especifico na área "Dúvidas em Geral" e aguarde ser respondido. Evite comentar em tópicos não relacionados a sua dúvida :D
TÓPICOS RECENTES:
Tópico:
Postado em:
Postado por:
Vocês Já Ficaram Com Vontade De Jogar Algum Jogo Criado ?
Scene 'New Scene3' couldn't be loaded because it has not been added to build settings
[Duvida!!] Sobre Servidor Online // Deixar o Jogo Online
TravarPersonagem em um angulo por determinada ação
[Projeto em Andamento] Brazil Combat
[TUTORIAL] Script super simples Para ficar de Dia e de Noite Automaticamente.
[DUVIDA] Unity Photon GetRoomList Não funciona
HORDA DE ZUMBIS
Qual versão do unity vocês acham melhor?
qual melhor para utilizar em movimento de personagem 3d em mmorpg
Onde consigo texturas free?
Gente estou com dúvida de como que faz o sistema do personagem (First Person)
Colisoes na Unity
Sistema de batalha e save Unity 2D
[RESOLVIDO] Alguém sabe um modo fazer o PlayerPrefs funcionar no linux?
Referência nula em variável Int
Como Deixar O Jogo Mais "Limpo" De Se Jogar?
[____TÓPICO LIVRE____] FALE O QUE QUISER (Parte 2)
Escalar paredes
Jogo Way To Victory
Ajuda com Duvida Sobre Os Angulos no Unity
SISTEMA SIMPLES DE VEICULO UNITY 5
[RESOLVIDO] Usar Regex para remover um ponto "."
Transição de Fases
Dúvida WEBGL
Doom 3 - rodando em WebAssembly
SOU MODELADOR SE TIVER ALGUEM PRECISANDO AI ME CONTATE
[TUTORIAL] Como Usar O Forum
[TUTORIAL] Texto Legenda Character Por Character Para Uso Básico
Script de tiro de um determinado local, armadilha
Link Prefabs??
[Projeto] Omega Racers
[DUVIDA] Acresentar int ao segurar botão
Html 5
Como desativar o retorno do microfone?
Duvida Sobre Animacoes
luz e luzes do carro
ALGUEM PODE ME DAR UMA AJUDA AQUI COM UM SCRIPT??
Standart assents
ESTOU PRECISANDO DE UMA AJUDA COM UM SCRIPT
Principais Erros Q O Console Da Unity Avisa?
Unity não vem com Character Controller
Como Altera a Emissão do Material Por Script
Destruir um inimigo e mudar de cena para o fim do jogo
ALGUEM PODE ME AJUDAR COM UM SCRIPT ????? :) :) :) :)
Problema com dano aos inimigos
[TUTORIAL] Como Hospedar jogos em WEBGL UNITY
Duvida Sobre posição de objetos dentro do Scroll View Canvas
Botão UI pressionar tecla do teclado?
[TUTORIAL] Joystick vistual para mobile
Converter Controle telcado para Celular
[TUTORIAL] Entrar no carro estilo GTA
(Ajuda) Verificação do cronômetro
[TUTORIAL] 42 ÓTIMAS DICAS DE OTIMIZAÇÃO PARA JOGOS MOBILE (Android)
13º Andar, jogo indie completo!
Uma das principais razões pelas quais desenvolvedores fracassam
Select File Runtime Android Unity3D
Sistema De Paraquedas Em C#, Como Fazer?
Game Engine
Gostaria de saber se já tem como colocar esse carro como mod no Spintires Mudrunners
COMBUSTIVEL
[TUTORIAL] Sistema Pdv, Mercado, Padaria, Conveniência, Lojas Em Geral - C# VISUAL STUDIO
[TUTORIAL] C# .NET | Instalar IDE para compilar c# para outras plataformas
Inimigo seguir o player
Guia PBR - Luz e Matéria: A teoria da renderização e sombreamento
player pulando eternamente quando dentro de um trigger colllider, como corrigir isso? 2D
[TUTORIAL] Inimigo que segue player enquanto player está vendo
Formação de Equipe ( Favela Killer)
Hengor meu MMORPG indie
[TUTORIAL] Sistema Simples de Falas
Como criar macro com tempo no Windows
Chamar variavel em outra script para chama-lo ao slide
Limite de spawn e respawn de inimigos
Command 888
(DUVIDA)Privacy Policy e Terms of use
[TUTORIAL] Como fazer um TELEPORTE
Verificar se outro objeto tem um script usando o raycasy
alguem pode ajudar com um problema xbox live
Unity: Não consigo criar meu projeto
Asset Store Está Recusando Meus Modelos 3D
Construção estilo Minecraft DUVIDA
Arma atravessando paredes - AJUDA
Sites de efeitos sonoros
Sistema de skin (Player) Sprite Renderer
Inserir animação em certos elemento
Som de passos 3º pessoas Unity C#
Ui só em tal lugar
Duvida sobre menu
como faco para spawnar a vida do inimigo junto com ele direto do prefabe
Freio Motor De Caminhão
Segurar item na mão e dropar item.
Como que faço para transformar um Vector3 em transform.position?
Textura aplicada na objeto mas não aparece
CharacterController não interage com Box Colliders.
Dúvida sobre pagamento de direitos autorais
Sistema de foco na Unity.
Rotação de sprite dentro do canvas (deformação)
duvida conta no banco inter
Flamehead MMORPG Indie
Ontem à(s) 11:13 pm
Ontem à(s) 11:08 pm
Ontem à(s) 11:00 pm
Ontem à(s) 9:33 pm
Ontem à(s) 8:51 pm
Ontem à(s) 6:38 pm
Ontem à(s) 6:37 pm
Ontem à(s) 5:33 pm
Ontem à(s) 3:42 pm
Ontem à(s) 3:18 pm
Ontem à(s) 1:12 pm
Ontem à(s) 11:22 am
Ontem à(s) 10:49 am
Sab Jul 20, 2019 11:24 pm
Sab Jul 20, 2019 8:46 pm
Sab Jul 20, 2019 5:49 pm
Sab Jul 20, 2019 5:39 pm
Sab Jul 20, 2019 5:17 pm
Sab Jul 20, 2019 5:02 pm
Sab Jul 20, 2019 2:25 pm
Sab Jul 20, 2019 12:05 pm
Sab Jul 20, 2019 12:04 pm
Sab Jul 20, 2019 11:58 am
Sab Jul 20, 2019 11:25 am
Sab Jul 20, 2019 11:18 am
Sab Jul 20, 2019 10:50 am
Sab Jul 20, 2019 9:37 am
Sab Jul 20, 2019 2:51 am
Sab Jul 20, 2019 2:43 am
Sab Jul 20, 2019 2:14 am
Sab Jul 20, 2019 1:56 am
Sex Jul 19, 2019 9:34 pm
Sex Jul 19, 2019 9:30 pm
Sex Jul 19, 2019 9:29 pm
Sex Jul 19, 2019 9:00 pm
Sex Jul 19, 2019 8:28 pm
Sex Jul 19, 2019 7:40 pm
Sex Jul 19, 2019 7:37 pm
Sex Jul 19, 2019 5:45 pm
Sex Jul 19, 2019 3:48 pm
Sex Jul 19, 2019 12:23 pm
Qui Jul 18, 2019 6:47 pm
Qui Jul 18, 2019 6:36 pm
Qui Jul 18, 2019 5:03 pm
Qui Jul 18, 2019 4:59 pm
Qui Jul 18, 2019 2:56 pm
Qui Jul 18, 2019 2:55 pm
Qua Jul 17, 2019 7:37 pm
Qua Jul 17, 2019 7:20 pm
Qua Jul 17, 2019 6:04 pm
Qua Jul 17, 2019 4:34 pm
Qua Jul 17, 2019 4:04 pm
Qua Jul 17, 2019 2:29 pm
Qua Jul 17, 2019 10:45 am
Qua Jul 17, 2019 10:43 am
Qua Jul 17, 2019 9:13 am
Ter Jul 16, 2019 9:19 pm
Ter Jul 16, 2019 8:40 pm
Ter Jul 16, 2019 5:24 pm
Ter Jul 16, 2019 5:19 pm
Ter Jul 16, 2019 3:59 pm
Ter Jul 16, 2019 2:19 pm
Ter Jul 16, 2019 1:56 pm
Ter Jul 16, 2019 1:44 pm
Ter Jul 16, 2019 10:36 am
Ter Jul 16, 2019 1:24 am
Seg Jul 15, 2019 2:29 pm
Seg Jul 15, 2019 12:36 pm
Seg Jul 15, 2019 12:25 pm
Sab Jul 13, 2019 10:12 pm
Sab Jul 13, 2019 10:12 pm
Sab Jul 13, 2019 7:50 pm
Sab Jul 13, 2019 7:07 pm
Sab Jul 13, 2019 12:34 pm
Sab Jul 13, 2019 10:54 am
Sex Jul 12, 2019 7:51 pm
Sex Jul 12, 2019 4:22 pm
Sex Jul 12, 2019 3:32 pm
Sex Jul 12, 2019 1:56 pm
Qui Jul 11, 2019 8:50 pm
Qui Jul 11, 2019 7:41 pm
Qui Jul 11, 2019 7:38 pm
Qui Jul 11, 2019 6:32 pm
Qua Jul 10, 2019 11:58 pm
Qua Jul 10, 2019 8:34 pm
Qua Jul 10, 2019 6:11 pm
Ter Jul 09, 2019 10:55 pm
Ter Jul 09, 2019 10:09 pm
Ter Jul 09, 2019 8:28 pm
Ter Jul 09, 2019 7:23 pm
Ter Jul 09, 2019 5:19 pm
Seg Jul 08, 2019 7:27 pm
Seg Jul 08, 2019 6:26 pm
Seg Jul 08, 2019 3:01 pm
Seg Jul 08, 2019 1:51 pm
Seg Jul 08, 2019 8:10 am
Seg Jul 08, 2019 2:56 am
Seg Jul 08, 2019 12:09 am
Dom Jul 07, 2019 8:38 pm
guimaraf
guimaraf
dkrazor
SergioDB
dkrazor
TgamerBR
Diguinho
dstaroski
yurinogueira
Valakinhas
TioUV
John Wesley
Insurgente
starfreddybou69
yurinogueira
guimaraf
Tegh
Tegh
Projeto Residentes Evil
luckas211
nibirou
Alerson Software
luiz12345
guimaraf
guimaraf
poyser
XxzeroChinxX 999
Magnatah
vitorhugo
Magnatah
Magnatah
guimaraf
Diguinho
guimaraf
lesgoy
Projeto Residentes Evil
Magnatah
Magnatah
Magnatah
gutovic29
JohnRambo
SteveRogers
Magnatah
luckas211
luckas211
Gustavo L1m4
RAFAELhentay
Dark_The_King
Diguinho
Daniel Dória
Johnatasdasilva
brunaeandersoncosmeticos@
poyser
Magnatah
Patrick
Tegh
GramadoOrc
Projeto Residentes Evil
Chilinger
brunos sou
Alerson Software
Chilinger
Chilinger
Chilinger
Magnatah
mathhBR
FantasmaFX
zeca urubu
Callyde Jr
Magnatah
lesgoy
Magnatah
Blandbrute6677
Callyde Jr
poyser
mama2401
diegopds
diegopds
Callyde Jr
Magnatah
rafaelllsd
rafaelllsd
poyser
luckas211
ffabim
merike11
iToddy
poyser
guimaraf
yurinogueira
Ed Mafi
Ed Mafi
Ed Mafi
LúcioHenrique098
eduardonog30
ruanzikaad
danielPedra90
MarcosSchultz
Magnatah

(Dúvida) Encontrar o objeto mais próximo partindo do ponto inicial ao final.

Ir em baixo

DÚVIDA (Dúvida) Encontrar o objeto mais próximo partindo do ponto inicial ao final.

Mensagem por rafaelllsd em Seg Out 15, 2018 11:36 pm

Olá, estou fazendo um sistema de pathfinding 2D baseado em checkpoints. O sistema de editor para criar o cenário com os checkpoints etá praticamente feito, porém enfrento dificuldades em fazer o "Navedador (objeto que seguirá entre os checkpoints)". Minha lógica seria  calcular a distância entre o ponto atual (A) e o ponto final (Z), e depois calcular qual checkpoint está mais próximo do (A) porém com menor distancia do mesmo que no caso seria o (B):

Código:
   void CalcularProximoPonto () {
      for (int x = 0; x < checkpoints.Count; x++) {
         distancia = Vector2.Distance (checkpoints[atual], checkpoints [final]);
         float distanciaGlobal = Vector2.Distance (checkpoints [x], checkpoints [final]);
         if ((distanciaGlobal) < distancia && x != final) {
             atual = x;
         }
      }
   }
Nesta situação ele pega o checkpoint (Y) e não o checkpoint (B), usaria um break no "for" para ele pegar o objeto (B), porém não funcionaria quando eu alterasse o destino final.

Dúvida
rafaelllsd
rafaelllsd
ProgramadorMaster

Masculino PONTOS : 3185
REPUTAÇÃO : 455
Idade : 18
Áreas de atuação : Unity, Audacity, Blender, Gimp, C#, JS, HTML5.

Respeito as regras : (Dúvida) Encontrar o objeto mais próximo partindo do ponto inicial ao final. Aad8pUi

Ver perfil do usuário

Voltar ao Topo Ir em baixo

DÚVIDA Re: (Dúvida) Encontrar o objeto mais próximo partindo do ponto inicial ao final.

Mensagem por MarcosSchultz em Qua Out 17, 2018 5:13 pm

Só queria dar um Up nesse tópico, por que eu não faço a menor ideia de como resolver
MarcosSchultz
MarcosSchultz
Administrador

Masculino PONTOS : 62001
REPUTAÇÃO : 2275
Idade : 22
Áreas de atuação : Administrador do fórum
Respeito as regras : (Dúvida) Encontrar o objeto mais próximo partindo do ponto inicial ao final. Aad8pUi

Ver perfil do usuário http://www.schultzgames.com

Voltar ao Topo Ir em baixo

DÚVIDA Re: (Dúvida) Encontrar o objeto mais próximo partindo do ponto inicial ao final.

Mensagem por rafaelllsd em Sab Out 20, 2018 5:16 pm

up
rafaelllsd
rafaelllsd
ProgramadorMaster

Masculino PONTOS : 3185
REPUTAÇÃO : 455
Idade : 18
Áreas de atuação : Unity, Audacity, Blender, Gimp, C#, JS, HTML5.

Respeito as regras : (Dúvida) Encontrar o objeto mais próximo partindo do ponto inicial ao final. Aad8pUi

Ver perfil do usuário

Voltar ao Topo Ir em baixo

DÚVIDA Re: (Dúvida) Encontrar o objeto mais próximo partindo do ponto inicial ao final.

Mensagem por Matrirxp em Dom Out 21, 2018 2:51 pm

Código:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class ObjetoProximo : MonoBehaviour {

    public GameObject[] CheckPoints;
    public float[] Dist;
    public GameObject Player;

    public GameObject CheckPointProximo;

    //Valores
    public float Menor;
    public float Maior;

    void Start()
    {

        Dist = new float[CheckPoints.Length]; //Ajusta o tamanho da array de acordo com o numero de CheckPoints 
    }

    void Update()
    {



        for (int i = 0; i < CheckPoints.Length; i++)
        { //Pegar a menor posi


            Dist[i] = Vector3.Distance(CheckPoints[i].transform.position, Player.transform.position);

            if (i == 0)
            {
                Maior = Dist[i];
                Menor = Dist[i];
            }

            if (Dist[i] > Maior)
            {
                Maior = Dist[i];
            }
            if (Dist[i] < Menor)
            {
                Menor = Dist[i];
                CheckPointProximo = CheckPoints[i];
            }

        }


    }

}


Tenta isso
Matrirxp
Matrirxp
ProgramadorMaster

Masculino PONTOS : 1383
REPUTAÇÃO : 75
Idade : 17
Áreas de atuação : Unity: Programação JavaScript e C#.
Programação: Python, C#, Java, HTML5,CSS.

Respeito as regras : (Dúvida) Encontrar o objeto mais próximo partindo do ponto inicial ao final. Aad8pUi

Ver perfil do usuário

Voltar ao Topo Ir em baixo

DÚVIDA Re: (Dúvida) Encontrar o objeto mais próximo partindo do ponto inicial ao final.

Mensagem por rafaelllsd em Dom Out 21, 2018 6:09 pm

@Matrirxp escreveu:
Código:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class ObjetoProximo : MonoBehaviour {

    public GameObject[] CheckPoints;
    public float[] Dist;
    public GameObject Player;

    public GameObject CheckPointProximo;

    //Valores
    public float Menor;
    public float Maior;

    void Start()
    {

        Dist = new float[CheckPoints.Length]; //Ajusta o tamanho da array de acordo com o numero de CheckPoints 
    }

    void Update()
    {



        for (int i = 0; i < CheckPoints.Length; i++)
        { //Pegar a menor posi


            Dist[i] = Vector3.Distance(CheckPoints[i].transform.position, Player.transform.position);

            if (i == 0)
            {
                Maior = Dist[i];
                Menor = Dist[i];
            }

            if (Dist[i] > Maior)
            {
                Maior = Dist[i];
            }
            if (Dist[i] < Menor)
            {
                Menor = Dist[i];
                CheckPointProximo = CheckPoints[i];
            }

        }


    }

}


Tenta isso
Não deu certo :/, mas me deu uma idéia, vlw.
rafaelllsd
rafaelllsd
ProgramadorMaster

Masculino PONTOS : 3185
REPUTAÇÃO : 455
Idade : 18
Áreas de atuação : Unity, Audacity, Blender, Gimp, C#, JS, HTML5.

Respeito as regras : (Dúvida) Encontrar o objeto mais próximo partindo do ponto inicial ao final. Aad8pUi

Ver perfil do usuário

Voltar ao Topo Ir em baixo

DÚVIDA Re: (Dúvida) Encontrar o objeto mais próximo partindo do ponto inicial ao final.

Mensagem por rafaelllsd em Dom Out 21, 2018 9:49 pm

Eu achei um meio resultado:
Código:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Destinador : MonoBehaviour {

 public MapEditor mapaDeCheckpoints;
 public int posicaoAtual;
 public int posicaoFinal;
 private int posicaoAnterior;
 private int proximoPonto;
 private float distanciaAtual;
 public float velocidade = 5;
 public bool podeMover;

 [Space(20)]
 public List<Vector3> checkpoints = new List<Vector3>();
 public List<float> pontosSecundarios = new List<float> ();

 void Awake () {
 checkpoints = mapaDeCheckpoints.checkpoints;

 }

 void Update () {
 if (transform.position != checkpoints[posicaoAtual] && podeMover) {
 if (proximoPonto == 0) {
 transform.position = Vector3.MoveTowards(transform.position, checkpoints [posicaoAtual], velocidade * Time.deltaTime);
 } else {
 transform.position = Vector3.MoveTowards(transform.position, checkpoints [proximoPonto], velocidade * Time.deltaTime);
 }
 }

 if (podeMover) {
 if (transform.position == checkpoints [posicaoAtual] && proximoPonto == 0) {
 ProcurarPontoPrimario ();
 } else if (proximoPonto != 0) {
 if (transform.position == checkpoints [proximoPonto]) {
 ProcurarPontoPrimario ();
 }
 }
 }

 if (Input.GetKeyDown(KeyCode.C)) {
 ResetarResultados ();
 }
 }

 void ProcurarPontoPrimario () {
 /* Esta void ela é responsavel por pegar os pontos inícias que estão mais próximos
 * do ponto de partida, ou seja, praticamente ela irá pegar somente os pontos que
 * estão paralelo, ou seja, lado a lado
 */
 for (int x = 0; x < checkpoints.Count; x++) {
 if (x != posicaoAtual) {
 float distanceCP = Vector2.Distance (checkpoints [posicaoAtual], checkpoints [posicaoFinal]); //Pega a distância entre o ponto atual e final
 float distanceX = Vector2.Distance (checkpoints [x], checkpoints [posicaoFinal]); //Pega a distância entre cada ponto em relação a posição final
 if (distanceX < distanceCP) { //Se o ponto[x] for menor que a distancia entre a minha posição e a posição final ele pega este valor
 posicaoAnterior = posicaoAtual;
 posicaoAtual = x; //Aqui ele atribui a posição atual ao ponto encontrado
 VerificarIntegridade ();
 distanciaAtual = distanceX;
 break;
 }
 }
 }
 }
 void VerificarIntegridade () {
 /* Aqui ele vai verificar se o ponto encontrado da void anterior é realmente o mais próximo entre o ponto anterior
 * e o ponto final
 */
 for (int i = 0; i < checkpoints.Count; i++) {
 if (i != posicaoAnterior && i != posicaoAtual) {
 float distancePC = Vector2.Distance (checkpoints [posicaoAtual], checkpoints [posicaoAnterior]);
 float distanceI = Vector2.Distance (checkpoints [i], checkpoints [posicaoAnterior]);
 if (distanceI < distancePC) {
 Debug.Log(i + " PONTO ENCONTRADO: " + checkpoints[i] + " DISTANCIA: >>>>>>>>> " + distanceI);
 pontosSecundarios.Add (distanceI); //Caso o ponto encontrado não for o menor ele adiciona todos os pontos mais próximos entre o ponto atual e o ponto final em uma lista.
 UltimaChecagem ();
 }
 }
 }
 }

 void UltimaChecagem () {
 /* Aqui é onde ocorre a ultima verificação, onde ele verifica qual desses pontos encontrados qual tem a menor distancia
 */
 for (int i = 0; i < pontosSecundarios.Count; i++) {
 if (pontosSecundarios[i] < distanciaAtual) {
 distanciaAtual = pontosSecundarios [i];
 Debug.Log ("RESULTADO FINAL: " + (i) + " DISTANCIA: " + pontosSecundarios [i] + " PONTO ORIGINAL: " + (posicaoAtual + (i + 1)));
 proximoPonto = posicaoAtual + (i + 1); //Após a verificação o ponto mais próximo encontrado sera o proximo local a ir
 }
 }
 }

 void ResetarResultados () { //É utilizado quando chega ao ponto final.
 pontosSecundarios.Clear (); //Limpa a lista.
 Debug.Log ("RESULTADOS DELETADOS");
 proximoPonto = 0;
 }
}
Basicamente ele na primeira vez quando vai, ele vai respeitando tudo perfeitamente, porém quando valor final é alterado, buga - se tudo kkkk. HELP!
rafaelllsd
rafaelllsd
ProgramadorMaster

Masculino PONTOS : 3185
REPUTAÇÃO : 455
Idade : 18
Áreas de atuação : Unity, Audacity, Blender, Gimp, C#, JS, HTML5.

Respeito as regras : (Dúvida) Encontrar o objeto mais próximo partindo do ponto inicial ao final. Aad8pUi

Ver perfil do usuário

Voltar ao Topo Ir em baixo

DÚVIDA Re: (Dúvida) Encontrar o objeto mais próximo partindo do ponto inicial ao final.

Mensagem por Matrirxp em Seg Out 22, 2018 8:35 pm

Não entendi muito bem você quer fazer  
Quer que o player percorra todos os checkpoints ????
Matrirxp
Matrirxp
ProgramadorMaster

Masculino PONTOS : 1383
REPUTAÇÃO : 75
Idade : 17
Áreas de atuação : Unity: Programação JavaScript e C#.
Programação: Python, C#, Java, HTML5,CSS.

Respeito as regras : (Dúvida) Encontrar o objeto mais próximo partindo do ponto inicial ao final. Aad8pUi

Ver perfil do usuário

Voltar ao Topo Ir em baixo

DÚVIDA Re: (Dúvida) Encontrar o objeto mais próximo partindo do ponto inicial ao final.

Mensagem por rafaelllsd em Seg Out 22, 2018 11:43 pm

@Matrirxp escreveu:Não entendi muito bem você quer fazer  
Quer que o player percorra todos os checkpoints ????
Sim, praticamente é um sistema de pathfinding com checkpoints, ele basicamente escolhe o checkpoint mais proximo de sí em relação ao ponto final e traça um caminho, porém está sendo bem complicado.
rafaelllsd
rafaelllsd
ProgramadorMaster

Masculino PONTOS : 3185
REPUTAÇÃO : 455
Idade : 18
Áreas de atuação : Unity, Audacity, Blender, Gimp, C#, JS, HTML5.

Respeito as regras : (Dúvida) Encontrar o objeto mais próximo partindo do ponto inicial ao final. Aad8pUi

Ver perfil do usuário

Voltar ao Topo Ir em baixo

DÚVIDA Re: (Dúvida) Encontrar o objeto mais próximo partindo do ponto inicial ao final.

Mensagem por Matrirxp em Ter Out 23, 2018 12:01 pm

@rafaelllsd escreveu:
@Matrirxp escreveu:Não entendi muito bem você quer fazer  
Quer que o player percorra todos os checkpoints ????
Sim, praticamente é um sistema de pathfinding com checkpoints, ele basicamente escolhe o checkpoint mais proximo de sí em relação ao ponto final e traça um caminho, porém está sendo bem complicado.
Porque tem que ser em relação ao ponto final?
Quer que ele vá ao ponto final e depois volte ao inicial ??
Matrirxp
Matrirxp
ProgramadorMaster

Masculino PONTOS : 1383
REPUTAÇÃO : 75
Idade : 17
Áreas de atuação : Unity: Programação JavaScript e C#.
Programação: Python, C#, Java, HTML5,CSS.

Respeito as regras : (Dúvida) Encontrar o objeto mais próximo partindo do ponto inicial ao final. Aad8pUi

Ver perfil do usuário

Voltar ao Topo Ir em baixo

DÚVIDA Re: (Dúvida) Encontrar o objeto mais próximo partindo do ponto inicial ao final.

Mensagem por MarcosSchultz em Ter Out 23, 2018 8:08 pm

@Matrirxp escreveu:
@rafaelllsd escreveu:
@Matrirxp escreveu:Não entendi muito bem você quer fazer  
Quer que o player percorra todos os checkpoints ????
Sim, praticamente é um sistema de pathfinding com checkpoints, ele basicamente escolhe o checkpoint mais proximo de sí em relação ao ponto final e traça um caminho, porém está sendo bem complicado.
Porque tem que ser em relação ao ponto final?
Quer que ele vá ao ponto final e depois volte ao inicial ??

Ponto final por que é o 'destino'

Pathfinding é pra escolher a rota mais curta da sua posição atual até o ponto de destino, criando uma lista de checkpoints para o jogador percorrer até o destino.
MarcosSchultz
MarcosSchultz
Administrador

Masculino PONTOS : 62001
REPUTAÇÃO : 2275
Idade : 22
Áreas de atuação : Administrador do fórum
Respeito as regras : (Dúvida) Encontrar o objeto mais próximo partindo do ponto inicial ao final. Aad8pUi

Ver perfil do usuário http://www.schultzgames.com

Voltar ao Topo Ir em baixo

DÚVIDA Re: (Dúvida) Encontrar o objeto mais próximo partindo do ponto inicial ao final.

Mensagem por Matrirxp em Ter Out 23, 2018 8:18 pm

Entendi  Smile
Matrirxp
Matrirxp
ProgramadorMaster

Masculino PONTOS : 1383
REPUTAÇÃO : 75
Idade : 17
Áreas de atuação : Unity: Programação JavaScript e C#.
Programação: Python, C#, Java, HTML5,CSS.

Respeito as regras : (Dúvida) Encontrar o objeto mais próximo partindo do ponto inicial ao final. Aad8pUi

Ver perfil do usuário

Voltar ao Topo Ir em baixo

DÚVIDA Re: (Dúvida) Encontrar o objeto mais próximo partindo do ponto inicial ao final.

Mensagem por Matrirxp em Ter Out 23, 2018 9:16 pm

Código:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Object2 : MonoBehaviour {

    public List<GameObject> CheckPoints = new List<GameObject>();//Checkpoint (Nao colocar o destino aqui)
    public GameObject Destino;//Destino
    float[] Dist;
    public GameObject Player;//Player

    public float Speed;

    //Valores
    float Menor;
    GameObject MenorObjeto;

    float Maior;

    bool Check;
    int Index;

    void Start()
    {

        Dist = new float[CheckPoints.Count]; //Ajusta o tamanho da array de acordo com o numero de CheckPoints 
        Check = true;//Checar CheckPoint

    }

    void Update()
    {


        if (CheckPoints.Count > 1)//Se o tamanho da lista for maior que 1 -> checar lista a procura do checkpoint mais proximo
        {

            if (MenorObjeto == null) //Se a variavel "MenorObjeto" for igual a null --> Verificar Chekpoints novamente (Assim e possivel evitar bugs como o "NullReferenceException")
            {
                Check = true;//Checar CheckPoint
            }

            if (Check == true)//Checar CheckPoint
            {

                for (int i = 0; i < CheckPoints.Count; i++)//Pegar o CheckPoint Mais Proximo
                { 


                    Dist[i] = Vector3.Distance(CheckPoints[i].transform.position, Player.transform.position);

                    if (i == 0)
                    {
                        Maior = Dist[i];
                        Menor = Dist[i];
                    }

                    if (Dist[i] > Maior)
                    {
                        Maior = Dist[i];
                    }
                    if (Dist[i] < Menor)
                    {
                        Menor = Dist[i];
                        MenorObjeto = CheckPoints[i];
                        Index = i;
                    }

                }
                Check = false;
            }
            else
            {
                float DistA = Vector3.Distance(MenorObjeto.transform.position, Player.transform.position);//Verifica a distancia entre o "MenorObjeto" e o "Player"
                float DistB = Vector3.Distance(MenorObjeto.transform.position, Destino.transform.position);//Verifica a distancia entre o "MenorObjeto" e o "Destino"
                float DistC = Vector3.Distance(Player.transform.position, Destino.transform.position);//Verifica a distancia entre o "Player" e o "Destino"

                if (DistB < DistC) //Verifica o Checkpoint escolhido (Evita a escolha de um Checkpoint fora de rota) [Se a distancia entre o "MenorObjeto" e o "Destino" e menor que a distancia entre o "Player" e o "Destino" -> Direcionar player]
                {

                    Player.transform.position = Vector3.MoveTowards(Player.transform.position, MenorObjeto.transform.position, Speed * Time.deltaTime);//Direcionar player ao proximo Checkpoint

                    if (DistA < 3)//Deletar checkpoint quando o player estiver nele 
                    {
                        CheckPoints.RemoveAt(Index);//Remover Checkpoint atual 
                        Index = 0;//Limpar variavel "Index" para uma nova checagem
                        Check = true;//Checar CheckPoint
                    }
                }
                else
                {
                    CheckPoints.RemoveAt(Index);//Remover Checkpoint fora de destino 
                    Index = 0;//Limpar variavel "Index" para uma nova checagem
                    Check = true;//Checar CheckPoint
                }
            }

        }
        else
        {
            Player.transform.position = Vector3.MoveTowards(Player.transform.position, Destino.transform.position, Speed * Time.deltaTime);//Apos passar por todos os checkpoints direcionar player ao destino
        }


    }

}

Acho que agora esta certo !
Matrirxp
Matrirxp
ProgramadorMaster

Masculino PONTOS : 1383
REPUTAÇÃO : 75
Idade : 17
Áreas de atuação : Unity: Programação JavaScript e C#.
Programação: Python, C#, Java, HTML5,CSS.

Respeito as regras : (Dúvida) Encontrar o objeto mais próximo partindo do ponto inicial ao final. Aad8pUi

Ver perfil do usuário

Voltar ao Topo Ir em baixo

DÚVIDA Re: (Dúvida) Encontrar o objeto mais próximo partindo do ponto inicial ao final.

Mensagem por rafaelllsd em Qua Out 24, 2018 7:10 pm

Não deu muito certo :/
https://imgur.com/a/wiOBaqR -> Tive que fazer a alteração de GameObject para vector3 porque a lista é feita de "Vector3", mas acho que não fiz nada de errado, praticamente ele não passa pelos checkpoints ele vai cortando pelo meio. Estou dando uma olhada em sistema de pathdinfing que geram uma "Surface" vou tentar extrair algo dela. Agradeço a ajuda.
rafaelllsd
rafaelllsd
ProgramadorMaster

Masculino PONTOS : 3185
REPUTAÇÃO : 455
Idade : 18
Áreas de atuação : Unity, Audacity, Blender, Gimp, C#, JS, HTML5.

Respeito as regras : (Dúvida) Encontrar o objeto mais próximo partindo do ponto inicial ao final. Aad8pUi

Ver perfil do usuário

Voltar ao Topo Ir em baixo

Voltar ao Topo

- Tópicos similares

 
Permissão deste fórum:
Você não pode responder aos tópicos neste fórum