Calcular a distância entre dois objetos no Unity 5

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

Publicado em

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
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
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
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

Gunnar Correa
Gunnar Correa

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

Todos os nossos cursos em promoção
Todos os nossos cursos em promoção

Webstories

Todos os nossos cursos em promoção


Deixe um comentário
Aguarde...
Todos os nossos cursos em promoção