Logo SatellaSoft



Calcular a distância entre dois objetos no Unity 5

Veja como usar o Vector3.Distance para calcular a distância entre dois objetos.


Ícone homem Gunnar Correa
Ícone data de publicação 27/11/2016
Ícone quantidade de visualização 4,701
Ícone bandeira do Brasil Português

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




Sobre o autor


Gunnar Correa

Nome: Gunnar Correa

Site: http://www.gunnarcorrea.com


Autodidata, graduado em Desenvolvimento Web e aluno de pós-graduação em Tecnologias na Educação em uma universidade no interior de São Paulo. Comecei meus estudos na área de programação quando ainda era criança, e atualmente estou estudando desenvolvimento de jogos.

Sou fundador do portal SatellaSoft dentre outros projetos. Nas minhas horas livres quando não estou com meus amigos, estou fazendo alguns cursos.


Comentários



É necessário estar autenticado para comentar, clique aqui para se registrar ou aqui para acessar a sua conta!