Проверка смотрит ли игрок на объект. [РЕШЕНО]
|
|
GamakST | Дата: Воскресенье, 23 Февраля 2014, 23:17 | Сообщение # 1 |
почетный гость
Сейчас нет на сайте
| Здравствуйте, делю игру FPS игру на Unity, и возникла небольшая проблема. Есть игрок, камера и куб. Нужно реализовать следующее: Если игрок смотрит на куб, то на экране появляется изображение на котором написано "Нажмите A" Если игрок нажимает клавишу А (игра заточена под джойстик), то появляется на экране другое изображение. При нажатии клавиши B показанное изображение убирается.
Как это сделать, никак не могу понять. Буду рад если поможете. С меня "+".
Unity3d - Blender
Сообщение отредактировал GamakST - Понедельник, 24 Февраля 2014, 21:28 |
|
| |
seaman | Дата: Воскресенье, 23 Февраля 2014, 23:59 | Сообщение # 2 |
старожил
Сейчас нет на сайте
| используем Raycast
|
|
| |
lentinant | Дата: Понедельник, 24 Февраля 2014, 05:04 | Сообщение # 3 |
ленивый программист
Сейчас нет на сайте
| Можно еще так. Вектор от объекта к игроку, берем угол к transform.forward и сравниваем его с определенным пограничным значением. Еще можно поместить перед игроком коллайдер, и соответственные действия делать, когда этот коллайдер будет соприкасаться с объектами. Заодно проверка на расстояние.
Когда-то тут будут ссылки на крутые проекты. Или нет.
Сообщение отредактировал lentinant - Понедельник, 24 Февраля 2014, 05:05 |
|
| |
PoqXert | Дата: Понедельник, 24 Февраля 2014, 09:34 | Сообщение # 4 |
постоянный участник
Сейчас нет на сайте
| OnBecameVisible OnBecameInvisible
Расширения для Unity3D Блог программиста - PoqXert.ru
Сообщение отредактировал PoqXert - Понедельник, 24 Февраля 2014, 09:35 |
|
| |
true_abrakadabra | Дата: Понедельник, 24 Февраля 2014, 10:10 | Сообщение # 5 |
Unity3d - ван лав
Сейчас нет на сайте
| PoqXert, мне кажется, что здесь будет удобнее Renderer.isVisible
Ниндзя
|
|
| |
GamakST | Дата: Понедельник, 24 Февраля 2014, 15:32 | Сообщение # 6 |
почетный гость
Сейчас нет на сайте
| true_abrakadabra, Попробовал, но думаю что, что-то сделал не так.
Код var textureToDisplay : Texture2D; var PaperRead1 = 0;
if (renderer.isVisible){ if (Input.GetKeyDown("e")){ PaperRead1 = 1; } } function OnGUI() { if (PaperRead1 == 1){ GUI.Label (Rect (10, 40, textureToDisplay.width, textureToDisplay.height), textureToDisplay); } }
Unity3d - Blender
|
|
| |
seaman | Дата: Понедельник, 24 Февраля 2014, 16:46 | Сообщение # 7 |
старожил
Сейчас нет на сайте
| НУ... Вам для начала нужно узнать что такое функция.
|
|
| |
GamakST | Дата: Понедельник, 24 Февраля 2014, 21:27 | Сообщение # 8 |
почетный гость
Сейчас нет на сайте
| Все проблема решена.
Unity3d - Blender
|
|
| |