Calcular a distância entre dois objetos no Unity 5

Gunnar CorreaGunnar Correa27/11/2016 às 05:40:55 - 13.518 acessos

Usando a classe Vector3.Distance podemos calcular a distância entre dois objetos em tempo real.


Desenvolvimento de jogos não é algo muito complicado, mas exige muito estudo, pois devemos saber onde usar cada recurso sem a perda de desempenho, pois isso é algo muito importante para o sucesso de um game.

De vários recursos que a Unity 5 nos permite trabalhar, hoje vamos estudar um pouco sobre o Vector3.Distance. A classe Vector3 possui vários importantes métodos, e aqui vamos utilizar apenas o Distance, que recebe dois parâmetros e retorna um float.

Para o nosso exemplo vamos utilizar dois cubos, conforme mostra a imagem a seguir.

Dois objetos em Cena no Unity 5

O Vector3.Distance, recebe dois parâmetros, cada um deles é esperado um Vector3. Normalmente passamos o transform.position dos objetos, pois isto já é o suficiente.

O script abaixo está associado a um GameObject vazio, nele associamos os dois objetos através das variáveis publicas declaradas dentro do nosso script.

Código 01

using UnityEngine;
using System.Collections;

public class DistanceScript : MonoBehaviour
{

    public GameObject _objeto1; //Objeto 1
    public GameObject _objeto2; //Objeto 2
    private float _distancia; //Armazena a distância

    void Start()
    {
        _distancia = 0; //Inicializamos com o valor 0
    }

    void Update()
    {
        //_objeto1.transform.position = Retorna a posição do objeto 1
        //_objeto2.transform.position = Retorna a posição do objeto 2
        //Vector3.Distance(Valor1, Valor2);
        _distancia = Vector3.Distance(_objeto1.transform.position, _objeto2.transform.position); //Calculamos a distância e atribuimos a variável
        Debug.Log(_distancia); //Exibimos o valor no Log
    }
}

Associando script ao Empty GameObject

O resultado pode ser conferido na janela de Log, conforme os objetos são movidos os valores são atualizados.

Comparando a distância entre dois GameObject

Este tipo de script pode ser utilizado quando necessitamos saber se o jogador está em uma distância de um objeto ou inimigo próximo, além de várias outras possibilidades de uso.

Vamos ficando por aqui, até a próxima!

Referências: https://docs.unity3d.com/ScriptReference/Vector3.Distance.html


Unity 5 Unity Game Object Vector3 Unity Vector3.Distance criando jogos Jogos Unity Programação Unity Unity C#

Compartilhe


Gunnar Correa

Gunnar Correa

Autodidata, Graduado em Desenvolvimento Web (FIPP), Especialista em Tecnologias na Educação (Unoeste) e Pós-graduando em Segurança da Informação (Universidade Cruzeiro do Sul). Começou seus estudos na área de programação quando era criança, e atualmente está estudando desenvolvimento de jogos. É CEO do portal SatellaSoft, criado em 2009 com o intuito de compartilhar conhecimento de forma gratuita e inédita.



Site atualizado

Olá, nosso site recebeu uma nova atualização e por conta disso, alguns artigos ainda estão sendo atualizados. Dependendo do conteúdo que você procura, poderá encontrar imagens e trechos de códigos mal formatados.

Estamos trabalhando para normalizar todos os conteúdos, muito em breve, esse problema não mais existirá.


Comentários