[RESOLVIDO] Como verificar qual objeto de uma array está mais perto.
5 participantes
SchultzGames :: UNITY 3D :: Resolvidos
Página 1 de 1
[RESOLVIDO] Como verificar qual objeto de uma array está mais perto.
Olá, como o titulo já diz, como faz para fazer uma varredura na array para saber qual dos objetos está mais perto.
rafaelllsd- ProgramadorMaster
- PONTOS : 5242
REPUTAÇÃO : 507
Idade : 24
Áreas de atuação : Unity, Audacity, Blender, Gimp, C#, JS, MySQL.
Respeito as regras :
Re: [RESOLVIDO] Como verificar qual objeto de uma array está mais perto.
Olá Rafaelllsd, você quer fazer no caso é para o seu esquema dos carros estilo GTA?
JohnRambo- Moderador
- PONTOS : 5172
REPUTAÇÃO : 661
Idade : 24
Áreas de atuação : Unity;
Programação;
Música e Sonorização;
Graduado em Análise e Desenvolvimento de Sistemas;
Respeito as regras :
Re: [RESOLVIDO] Como verificar qual objeto de uma array está mais perto.
Sim. Marcos falo para cria esse tópico que ele me ajudaria, mais qualquer ajuda é bem vinda :D
rafaelllsd- ProgramadorMaster
- PONTOS : 5242
REPUTAÇÃO : 507
Idade : 24
Áreas de atuação : Unity, Audacity, Blender, Gimp, C#, JS, MySQL.
Respeito as regras :
Re: [RESOLVIDO] Como verificar qual objeto de uma array está mais perto.
pra entra no carro eu coloquei um box collider no player e uso o OnTriggerStay() para pegar o carro que estiver dentro do meu Trigger! e eu so vo ter uma referencia por vez, n tendo o risco dele entra em dois carros.
elem de que da pra usar esse Trigge pra saber se tem outros obj próximos
elem de que da pra usar esse Trigge pra saber se tem outros obj próximos
luKkaSs- MembroAvançado
- PONTOS : 3353
REPUTAÇÃO : 19
Idade : 28
Respeito as regras :
Re: [RESOLVIDO] Como verificar qual objeto de uma array está mais perto.
Existem varias formas de fazer isso, algumas delas:
Recursividade,
Linq,
Iteração
O mais facil de entender seria com Iteração:
Recursividade,
Linq,
Iteração
O mais facil de entender seria com Iteração:
- Código:
using UnityEngine;
using System.Collections;
public class GetNearVehicle : MonoBehaviour {
public Transform[] vehicles;
public int GetNearVehicleIndex(Transform[] array,Vector3 comparePos){
if (array.Length == 1)
return 0;
int lastI = -1;
float lastD = 999999;
for(int i=0; i<array.Length; i++)
{
var d = Vector3.Distance (array [i].position, comparePos);
if(d<lastD)
{
lastD = d;
lastI = i;
}
}
return lastI;
}
void Start(){
int i = GetNearVehicleIndex (vehicles,transform.position);
print ("O veiculo mais perto é: " + vehicles [i].name);
}
}
Re: [RESOLVIDO] Como verificar qual objeto de uma array está mais perto.
Vou testar ele aqui e se ocorrer tudo certo eu aloco ao script do carro vlw :D
rafaelllsd- ProgramadorMaster
- PONTOS : 5242
REPUTAÇÃO : 507
Idade : 24
Áreas de atuação : Unity, Audacity, Blender, Gimp, C#, JS, MySQL.
Respeito as regras :
Re: [RESOLVIDO] Como verificar qual objeto de uma array está mais perto.
Eu uso uma lógica simplesinha, parecida com a do Manaydan
- Código:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class MenorDistancia : MonoBehaviour {
public GameObject[] veiculos;
public int indiceVeiculoMaisProximo = 0;
void Update () {
if (Input.GetKeyDown (KeyCode.E)) {
ChecarVeiculoMaisProximo ();
}
}
void ChecarVeiculoMaisProximo(){
float distanciaMax = 99999999999999999;
for (int x = 0; x < veiculos.Length; x++) {
float distanciaVeiculoAtual = Vector3.Distance (transform.position, veiculos [x].transform.position);
if (distanciaVeiculoAtual < distanciaMax) {
distanciaMax = distanciaVeiculoAtual;
indiceVeiculoMaisProximo = x;
}
}
}
}
Tópicos semelhantes
» Como saber em qual objeto um objeto esta filiado?
» Quero setar uma variavel de um objeto para outros objetos , mas o objeto esta dentro de uma array desse objeto
» como verificar se um objeto com um nome especifico nao esta na cena
» [RESOLVIDO] Como saber se o jogador esta vendo um certo objeto?
» [RESOLVIDO] Como verificar se o objeto é diferente de null
» Quero setar uma variavel de um objeto para outros objetos , mas o objeto esta dentro de uma array desse objeto
» como verificar se um objeto com um nome especifico nao esta na cena
» [RESOLVIDO] Como saber se o jogador esta vendo um certo objeto?
» [RESOLVIDO] Como verificar se o objeto é diferente de null
SchultzGames :: UNITY 3D :: Resolvidos
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos