Реалистичное взаимодействие с объектами.

Форум для самых маленьких, а так же тех, кому недосуг читать справку самостоятельно.

Реалистичное взаимодействие с объектами.

Сообщение Magnitofon 10 сен 2013, 17:49

Здравствуйте! Как сделать активацию части скрипта при следующих условиях одновременно:
1)игрок находится к объекту на расстоянии < 1 метра;
2)центр экрана (у меня там прицел) наведён на объект;

Результат выполнения этих условий- появление на экране иконки действия (ну с иконкой я разберусь) и появление ещё одного условия:

3)Нажал ли игрок кнопку;
Это условие появляется только при выполнении двух предыдущих условий и появлении иконки.

Если игрок нажал кнопку, то активируется некий код.

Вопрос в том, какие команды использовать и как сделать именно такую последовательность условий и кода?
Magnitofon
UNIт
 
Сообщения: 63
Зарегистрирован: 10 сен 2013, 16:50

Re: Реалистичное взаимодействие с объектами.

Сообщение Citrus 10 сен 2013, 18:19

используй такой знак как && - логическое и . Используй это в одном условии
if ( что то && что то ) - чтобы выполнить два (или более)условия одновременно.
а что использовать загляни в scripting reference И поищи на то что тебе надо ..
а появление еще одной , сделай дубликат этого скрипта и поставь другую иконку туда
Последний раз редактировалось Citrus 10 сен 2013, 18:21, всего редактировалось 1 раз.
System Of A Down Rock'n'Roll music FOREVER
Скрытый текст:
Аватара пользователя
Citrus
UNIт
 
Сообщения: 147
Зарегистрирован: 05 авг 2012, 12:24


Re: Реалистичное взаимодействие с объектами.

Сообщение Magnitofon 10 сен 2013, 18:54

Спасибо.

qwerty74 писал(а):2 http://docs.unity3d.com/Documentation/S ... ToRay.html
и http://docs.unity3d.com/Documentation/S ... ycast.html


Как узнать, что созданный луч прошёл именно через определённый объект? Можно использовать, как я понял, значения "ray = true/false" в условии ("if (dist < 1 && ray = true)"), это будет означать, что луч встретил препятствие, но как узнать, что луч встретился именно с определённым объектом?
Magnitofon
UNIт
 
Сообщения: 63
Зарегистрирован: 10 сен 2013, 16:50

Re: Реалистичное взаимодействие с объектами.

Сообщение Citrus 10 сен 2013, 19:08

добавь tag , во в кладке таг выбери снизу Add tag . и там открой вкладку tags и напиши число (любое ) и он тебе создаст таги пустые , сколько ты там написал .
а потом напиши типа ,если луч попайдет на этот объект с тагом , тогда ,произойдет какое то действие.

gameObject.tag == " какой то таг"
не смогу написать потому ,что сам нормально не умею писать скрипты )
System Of A Down Rock'n'Roll music FOREVER
Скрытый текст:
Аватара пользователя
Citrus
UNIт
 
Сообщения: 147
Зарегистрирован: 05 авг 2012, 12:24

Re: Реалистичное взаимодействие с объектами.

Сообщение Citrus 10 сен 2013, 19:27

хотя , по моему вот так

if(dist < 1 && ray.gameObject.tag == "pig" == true);

вот ,вроде так, попробуй у меня ошибки не выдало )
System Of A Down Rock'n'Roll music FOREVER
Скрытый текст:
Аватара пользователя
Citrus
UNIт
 
Сообщения: 147
Зарегистрирован: 05 авг 2012, 12:24

Re: Реалистичное взаимодействие с объектами.

Сообщение qwerty74 10 сен 2013, 19:34

Citrus писал(а):хотя , по моему вот так

if(dist < 1 && ray.gameObject.tag == "pig" == true);

вот ,вроде так, попробуй у меня ошибки не выдало )


:-o а зачем "== true"?
qwerty74
UNITрон
 
Сообщения: 201
Зарегистрирован: 14 мар 2012, 14:03

Re: Реалистичное взаимодействие с объектами.

Сообщение Citrus 10 сен 2013, 19:50

qwerty74 писал(а):
Citrus писал(а):хотя , по моему вот так

if(dist < 1 && ray.gameObject.tag == "pig" == true);

вот ,вроде так, попробуй у меня ошибки не выдало )


:-o а зачем "== true"?


потому что , не надо это путать с тем , когда вы пишите переменные .
При условии "if() " должно быть удвоенное равно . То , есть когда мы проверяем на истинность в условии мы должны использовать ==, а не одно =.
System Of A Down Rock'n'Roll music FOREVER
Скрытый текст:
Аватара пользователя
Citrus
UNIт
 
Сообщения: 147
Зарегистрирован: 05 авг 2012, 12:24

Re: Реалистичное взаимодействие с объектами.

Сообщение qwerty74 10 сен 2013, 20:02

Citrus писал(а):
qwerty74 писал(а):
Citrus писал(а):хотя , по моему вот так

if(dist < 1 && ray.gameObject.tag == "pig" == true);

вот ,вроде так, попробуй у меня ошибки не выдало )


:-o а зачем "== true"?


потому что , не надо это путать с тем , когда вы пишите переменные .
При условии "if() " должно быть удвоенное равно . То , есть когда мы проверяем на истинность в условии мы должны использовать ==, а не одно =.


Это то понятно, но ведь ray.gameObject.tag == "pig" возвращает true или false, и == true просто лишняя операция
qwerty74
UNITрон
 
Сообщения: 201
Зарегистрирован: 14 мар 2012, 14:03

Re: Реалистичное взаимодействие с объектами.

Сообщение seaman 10 сен 2013, 20:07

Использование конструкции
if(myVar == true)
говорит о неопытности программиста.
seaman
Адепт
 
Сообщения: 8352
Зарегистрирован: 24 янв 2011, 12:32
Откуда: Самара

Re: Реалистичное взаимодействие с объектами.

Сообщение Citrus 10 сен 2013, 20:17

("if (dist < 1 && ray = true)")там было написано это . А я добавил с использованием тега.
Последний раз редактировалось Citrus 10 сен 2013, 22:43, всего редактировалось 1 раз.
System Of A Down Rock'n'Roll music FOREVER
Скрытый текст:
Аватара пользователя
Citrus
UNIт
 
Сообщения: 147
Зарегистрирован: 05 авг 2012, 12:24

Re: Реалистичное взаимодействие с объектами.

Сообщение Citrus 10 сен 2013, 20:30

seaman писал(а):Использование конструкции
if(myVar == true)
говорит о неопытности программиста.

то есть вы хотите сказать , что уже нет надобности использовать == тру ?
а так я знаю , что не опытен :) Я программингом меньше недели занимаюсь.
System Of A Down Rock'n'Roll music FOREVER
Скрытый текст:
Аватара пользователя
Citrus
UNIт
 
Сообщения: 147
Зарегистрирован: 05 авг 2012, 12:24

Re: Реалистичное взаимодействие с объектами.

Сообщение seaman 10 сен 2013, 21:51

что уже нет надобности использовать == тру ?

Конечно. Зачем? Что делает if? Проверяет true ли то что в скобках. Без всяких ваших == true.
seaman
Адепт
 
Сообщения: 8352
Зарегистрирован: 24 янв 2011, 12:32
Откуда: Самара

Re: Реалистичное взаимодействие с объектами.

Сообщение Citrus 10 сен 2013, 22:37

seaman писал(а):
что уже нет надобности использовать == тру ?

Конечно. Зачем? Что делает if? Проверяет true ли то что в скобках. Без всяких ваших == true.

аааа.... учту )) спасибо ))
System Of A Down Rock'n'Roll music FOREVER
Скрытый текст:
Аватара пользователя
Citrus
UNIт
 
Сообщения: 147
Зарегистрирован: 05 авг 2012, 12:24

Re: Реалистичное взаимодействие с объектами.

Сообщение 2rusbekov 12 сен 2013, 08:43

Citrus писал(а):хотя , по моему вот так

if(dist < 1 && ray.gameObject.tag == "pig" == true);

вот ,вроде так, попробуй у меня ошибки не выдало )

Зачет!! :-bd
Still alive...
Аватара пользователя
2rusbekov
Адепт
 
Сообщения: 1409
Зарегистрирован: 06 апр 2012, 12:57
Откуда: Бишкек


Вернуться в Почемучка

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

Сейчас этот форум просматривают: Yandex [Bot] и гости: 19