Поиск расстояния между телами.

Программирование на Юнити.

Поиск расстояния между телами.

Сообщение Alh45011 21 апр 2010, 11:08

Здраствуйте,
У меня есть mesh и точка, требуется определить расстояние между ними. Как это можно осуществить? Единственно, что пока пришло в голову запустить из точки несколько ray`ев (с шагом скажем 10 градусов) и по ним определить. Но возможно есть некие более лаконичные способы?
Alh45011
UNец
 
Сообщения: 2
Зарегистрирован: 20 апр 2010, 10:13

Re: Поиск расстояния между телами.

Сообщение Serge 21 апр 2010, 11:34

Смотреть в справке Vector3.Distance()
О, сколько нам открытий чудных Готовят просвещенья дух И опыт, сын ошибок трудных, И гений, парадоксов друг, И случай, бог изобретатель.
Аватара пользователя
Serge
UNIверсал
 
Сообщения: 476
Зарегистрирован: 20 мар 2009, 15:53
Откуда: Сибирь г. Омск
  • Сайт
  • ICQ

Re: Поиск расстояния между телами.

Сообщение Tolking 21 апр 2010, 12:47

Блиин! Любопытство разобрало!!! А как запуская из точки несколько реев с шагом можно узнать растояние?
Ковчег построил любитель, профессионалы построили Титаник.
Аватара пользователя
Tolking
Адепт
 
Сообщения: 2716
Зарегистрирован: 08 июн 2009, 18:22
Откуда: Тула

Re: Поиск расстояния между телами.

Сообщение Zaicheg 21 апр 2010, 12:53

Tolking писал(а):Блиин! Любопытство разобрало!!! А как запуская из точки несколько реев с шагом можно узнать растояние?

Ну мы имеем две стороны треугольника (расстояния до мест пересечения лучом объектов) и угол между ними (между направлениями лучей). Найти третью сторону (расстояние между объектами) можно по формуле c² = a² + b² – 2ab · cos C, если я не путаю. Шаг нужен, если неизвестно заранее, в какие объекты пускать лучи.
Дьяченко Роман
e-mail: _zaicheg.reg@gmail.com
skype: zaicheg12
vkontakte: _vk.com/zaichegq
Работа: _wie3.com _www.sanviz.com
Аватара пользователя
Zaicheg
Адепт
 
Сообщения: 3024
Зарегистрирован: 19 июн 2009, 15:12
Откуда: Череповец

Re: Поиск расстояния между телами.

Сообщение Alh45011 21 апр 2010, 13:30

Serge писал(а):Смотреть в справке Vector3.Distance()


Да нет, вы не поняли расстояние между двумя точками я вычислять умею. Но это не то, что требуется. Аргументы функции Distance() 2 вектора, у меня же есть один вектор и тело (mesh) в котором точек(векторов) много. Т.е. вообще говоря расстояний между точкой и телом множество, но мне нужно минимальное из них.
Alh45011
UNец
 
Сообщения: 2
Зарегистрирован: 20 апр 2010, 10:13

Re: Поиск расстояния между телами.

Сообщение Zaicheg 21 апр 2010, 13:33

Alh45011 писал(а):Да нет, вы не поняли расстояние между двумя точками я вычислять умею. Но это не то, что требуется. Аргументы функции Distance() 2 вектора, у меня же есть один вектор и тело (mesh) в котором точек(векторов) много. Т.е. вообще говоря расстояний между точкой и телом множество, но мне нужно минимальное из них.

Перебор в Vector3.Distance(). Второй аргумент, который и перебирается, — некая результирующая координата, полученная из transform.position и текущим элементом mesh.vertices.
Дьяченко Роман
e-mail: _zaicheg.reg@gmail.com
skype: zaicheg12
vkontakte: _vk.com/zaichegq
Работа: _wie3.com _www.sanviz.com
Аватара пользователя
Zaicheg
Адепт
 
Сообщения: 3024
Зарегистрирован: 19 июн 2009, 15:12
Откуда: Череповец

Re: Поиск расстояния между телами.

Сообщение Shaper 09 июн 2010, 12:16

Мне понадобилась ета функция, в JS все понятно, но не работает в шарпе (просто вс в C# делаю). Переводил онлайн переводчиком. Подправил кое-что, ошибок не выдает но Юнити отказывается вешать скрипт на обьект :((
Синтаксис:
Используется csharp
using UnityEngine;
using System.Collections;

public class DistanceToTarget : MonoBehaviour
{
Transform other;
public float ds=0;
void  Update ()
        {

     if (other)
                        {
              float  dist=Vector3.Distance(other.position, transform.position);
                  ds = dist;
                        }
    }
void  OnGUI ()
        {
      GUI.Label (new Rect (150,30,200,40), "distance : "+ds.ToString());
   }
}
 
Shaper
UNец
 
Сообщения: 4
Зарегистрирован: 08 июн 2010, 23:47

Re: Поиск расстояния между телами.

Сообщение Zaicheg 09 июн 2010, 12:24

Наверное имя файла не совпадает с именем класса.
Дьяченко Роман
e-mail: _zaicheg.reg@gmail.com
skype: zaicheg12
vkontakte: _vk.com/zaichegq
Работа: _wie3.com _www.sanviz.com
Аватара пользователя
Zaicheg
Адепт
 
Сообщения: 3024
Зарегистрирован: 19 июн 2009, 15:12
Откуда: Череповец

Re: Поиск расстояния между телами.

Сообщение Shaper 09 июн 2010, 12:40

Спс, действительно имя не то было.
А можно чтоб в скрипте шарпа в Defaul References также можно было выбрать обьект? Или ето не надо, если будет код например выбор обьекта расстояния по клику мышки?
Shaper
UNец
 
Сообщения: 4
Зарегистрирован: 08 июн 2010, 23:47


Вернуться в Скрипты

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 16