OnMouseEnter - как задать определенное расстояние? - Форум Игроделов
Сб, 04 Май 2024, 18:30 
 
Приветствую Вас Гость Главная | Регистрация | Вход
Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Форум Игроделов » UNITY3D » СКРИПТИНГ » OnMouseEnter - как задать определенное расстояние? (OnMouseEnter - как задать определенное расстояние?)
OnMouseEnter - как задать определенное расстояние?
GoodgeniusДата: Вс, 13 Окт 2013, 14:47 | Сообщение # 1
 
Сообщений: 86
Награды: 0
Репутация: 6
Статус: Offline
Привет всем! Хочу сделать включение/выключение света методом наводки курсора на выключатель, но как сделать так чтобы я мог навестись на выключатель только с определенного расстояния, допустим 1 метр, а если отойти дальше от выключателя, и попытаться опять навести курсор на выключатель и взаимодействовать с ним, включить и выключить уже бы не получалось. То есть вы же не можете в реальной жизни взаимодействовать с выключателем на большом расстоянии от него!

Сообщение отредактировал Goodgenius - Вс, 13 Окт 2013, 14:48
 
СообщениеПривет всем! Хочу сделать включение/выключение света методом наводки курсора на выключатель, но как сделать так чтобы я мог навестись на выключатель только с определенного расстояния, допустим 1 метр, а если отойти дальше от выключателя, и попытаться опять навести курсор на выключатель и взаимодействовать с ним, включить и выключить уже бы не получалось. То есть вы же не можете в реальной жизни взаимодействовать с выключателем на большом расстоянии от него!

Автор - Goodgenius
Дата добавления - 13 Окт 2013 в 14:47
ЛевшаДата: Пн, 14 Окт 2013, 20:24 | Сообщение # 2
Черный Волк
 
Сообщений: 7257
Награды: 30
Репутация: 3313
Статус: Offline
Цитата Goodgenius ()
чтобы я мог навестись на выключатель только с определенного расстояния,


http://docs.unity3d.com/Documen....st.html

Cоглашусь с остальными, пора уже начинать самому учится работать с мануалом и потихоньку пытатся разобратся с кодингом.

Код

function Update () {
           var hit : RaycastHit;
       if (Physics.Raycast (transform.position, -Vector3.up, hit)) {
           var distanceToGround = hit.distance;
       }
}


X.cor.R (Prologue)
 
Сообщение
Цитата Goodgenius ()
чтобы я мог навестись на выключатель только с определенного расстояния,


http://docs.unity3d.com/Documen....st.html

Cоглашусь с остальными, пора уже начинать самому учится работать с мануалом и потихоньку пытатся разобратся с кодингом.

Код

function Update () {
           var hit : RaycastHit;
       if (Physics.Raycast (transform.position, -Vector3.up, hit)) {
           var distanceToGround = hit.distance;
       }
}

Автор - Левша
Дата добавления - 14 Окт 2013 в 20:24
seamanДата: Пн, 14 Окт 2013, 22:20 | Сообщение # 3
Гуру
 
Сообщений: 1748
Награды: 10
Репутация: 660
Статус: Offline
Дополню. Без Raycast
Геометрия: Расстояние между двумя точками.

В векторном виде:
Код
float distance = Mathf.Sqrt(transform.position - position2);

Ну а если посмотреть справку по векторам, то так:
Код
float distance = (transform.position - position2).magnitude;

Или даже так:
Код
float distance = Vector3.Distance(transform.position, position2);

PS^
На форуме есть раздел с уроками. Там есть цикл уроков по математике в Юнити. Очень рекомендую почитать.
PPS: Видите сколько разных способов! А всего то - открыли мануал и почитали.
PPPS: Да. Если Вам не нужно знать точное расстояние между точками, а просто сравнить - какая ближе, рекомендую пользоваться не magnitude/Distance, а sqrmagnitude. Будет быстрее.
PPPPS:
Цитата
дали бы жалкие две строчки кода

Ну как видите нормальный ответ на вопрос - это гораздо больше чем две строчки кода. И все что написали я и Левша - просто пересказ мануала. А теперь подумайте - имеет нам смысл каждый раз при ответе на вопрос тратить свое время просто пересказывая мануал? Тем более, что если мы просто напишем:
Цитата
function Update () {
var hit : RaycastHit;
if (Physics.Raycast (transform.position, -Vector3.up, hit)) {
var distanceToGround = hit.distance;
}
}

Вы свою сиюминутную проблему решите, но ничему не научитесь. И при следующей подобной проблеме снова будете попрошайничать на форуме. А вот если Вы найдете ответ в мануале, или просто в инете сами - Вы научитесь. Поймете как решать проблемы. И в следующий раз решите задачу гораздо быстрее. А со временем будете и другим помогать решать задачи.
 
СообщениеДополню. Без Raycast
Геометрия: Расстояние между двумя точками.

В векторном виде:
Код
float distance = Mathf.Sqrt(transform.position - position2);

Ну а если посмотреть справку по векторам, то так:
Код
float distance = (transform.position - position2).magnitude;

Или даже так:
Код
float distance = Vector3.Distance(transform.position, position2);

PS^
На форуме есть раздел с уроками. Там есть цикл уроков по математике в Юнити. Очень рекомендую почитать.
PPS: Видите сколько разных способов! А всего то - открыли мануал и почитали.
PPPS: Да. Если Вам не нужно знать точное расстояние между точками, а просто сравнить - какая ближе, рекомендую пользоваться не magnitude/Distance, а sqrmagnitude. Будет быстрее.
PPPPS:
Цитата
дали бы жалкие две строчки кода

Ну как видите нормальный ответ на вопрос - это гораздо больше чем две строчки кода. И все что написали я и Левша - просто пересказ мануала. А теперь подумайте - имеет нам смысл каждый раз при ответе на вопрос тратить свое время просто пересказывая мануал? Тем более, что если мы просто напишем:
Цитата
function Update () {
var hit : RaycastHit;
if (Physics.Raycast (transform.position, -Vector3.up, hit)) {
var distanceToGround = hit.distance;
}
}

Вы свою сиюминутную проблему решите, но ничему не научитесь. И при следующей подобной проблеме снова будете попрошайничать на форуме. А вот если Вы найдете ответ в мануале, или просто в инете сами - Вы научитесь. Поймете как решать проблемы. И в следующий раз решите задачу гораздо быстрее. А со временем будете и другим помогать решать задачи.

Автор - seaman
Дата добавления - 14 Окт 2013 в 22:20
GoodgeniusДата: Вт, 15 Окт 2013, 13:45 | Сообщение # 4
 
Сообщений: 86
Награды: 0
Репутация: 6
Статус: Offline
Хорошо. Спасибо всем за помощь, буду учиться пользоваться мануалом.
P.S. Игнат, я не думал что кто то смотрит на возраст указанный в анкете при регистрации аккаунта, и не кого я не просил за меня скрипт писать, встревать не обязательно было.
 
СообщениеХорошо. Спасибо всем за помощь, буду учиться пользоваться мануалом.
P.S. Игнат, я не думал что кто то смотрит на возраст указанный в анкете при регистрации аккаунта, и не кого я не просил за меня скрипт писать, встревать не обязательно было.

Автор - Goodgenius
Дата добавления - 15 Окт 2013 в 13:45
Форум Игроделов » UNITY3D » СКРИПТИНГ » OnMouseEnter - как задать определенное расстояние? (OnMouseEnter - как задать определенное расстояние?)
  • Страница 1 из 1
  • 1
Поиск:
Загрузка...

Game Creating CommUnity © 2009 - 2024