Проблема с OnMouseDown

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

Проблема с OnMouseDown

Сообщение druggon 09 мар 2011, 13:43

Господа, как только в сцене появляется изображение, рендерящееся с камеры (render to texture) - перестает работать OnMouseDown (самый простой скрипт - destroy(gameObject)). Может есть у вас мысли, как исправить данное недоразумение?

Заранее признателен за любую помощь.
druggon
UNец
 
Сообщения: 18
Зарегистрирован: 09 мар 2011, 13:36

Re: Проблема с OnMouseDown

Сообщение Zaicheg 09 мар 2011, 14:16

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

Re: Проблема с OnMouseDown

Сообщение druggon 09 мар 2011, 14:46

Устроено у меня всё следующим образом - на полигон, привязанный к камере контроллера рендерится изображение с еще одной параллельной камеры - т.е. игрок видит одновременно изображение с двух камер. OnMouseDown должен работать на основной камере, но работать он категорически не желает (
druggon
UNец
 
Сообщения: 18
Зарегистрирован: 09 мар 2011, 13:36

Re: Проблема с OnMouseDown

Сообщение Zaicheg 09 мар 2011, 14:48

druggon писал(а):Устроено у меня всё следующим образом - на полигон, привязанный к камере контроллера рендерится изображение с еще одной параллельной камеры - т.е. игрок видит одновременно изображение с двух камер. OnMouseDown должен работать на основной камере, но работать он категорически не желает (

Потому что нажатие ловится полигоном с изображением с параллельной камеры.
По-моему, вам подойдёт либо collider.Raycast, либо Physics.RaycastAll (или Raycast с маской). В связке с ScreenPointToRay.
Либо удалить коллайдер с полигона параллельной камеры.
Дьяченко Роман
e-mail: _zaicheg.reg@gmail.com
skype: zaicheg12
vkontakte: _vk.com/zaichegq
Работа: _wie3.com _www.sanviz.com
Аватара пользователя
Zaicheg
Адепт
 
Сообщения: 3024
Зарегистрирован: 19 июн 2009, 15:12
Откуда: Череповец

Re: Проблема с OnMouseDown

Сообщение druggon 09 мар 2011, 15:01

Спасибо за советы, обязательно опробую. На счет наличия колайдера у полигона я не уверен, но он вполне там может быть, хотя его наличие для меня не принципиально.

А где-нибудь модно подглядеть скрипт простой кнопки (на проигрывание анимации к примеру) реализованный через рейкаст?
druggon
UNец
 
Сообщения: 18
Зарегистрирован: 09 мар 2011, 13:36

Re: Проблема с OnMouseDown

Сообщение Neodrop 09 мар 2011, 15:02

Где то на форуме было решение от камрада Gnoblin
Но, к сожалению, не помню где.
Добавить neodrop в Skype
Изображение
"Спасибо!" нашему порталу, вы сможете сказать ЗДЕСЬ.
Если проблема не решается честно, нужно её обмануть! || Per stupiditas at Astra!
Страх порождает слабость. Бесстрашных поражают пули.
Протратившись на блядях байтах, на битах не экономят.
Аватара пользователя
Neodrop
Админ
 
Сообщения: 8480
Зарегистрирован: 08 окт 2008, 15:42
Откуда: Питер
Skype: neodrop
  • Сайт

Re: Проблема с OnMouseDown

Сообщение seaman 09 мар 2011, 15:36

seaman
Адепт
 
Сообщения: 8352
Зарегистрирован: 24 янв 2011, 12:32
Откуда: Самара

Re: Проблема с OnMouseDown

Сообщение druggon 09 мар 2011, 15:47

2seaman

Спасибо, попробую!


Кстате, забыл уточнить. В юнити 2.6 всё работало, вчера перешел на 3.2 - и всё )
druggon
UNец
 
Сообщения: 18
Зарегистрирован: 09 мар 2011, 13:36

Re: Проблема с OnMouseDown

Сообщение druggon 09 мар 2011, 18:41

Господа, чтоб не создавать вторую тему, спрошу тут. Мне нужен скрипт, готов за него даже заплатить, ибо сам очень плохо шарю в скриптах. Вот его описание:

Скрипт вешается на любой объект, в нашем случае, на камеру. Повторяет движение выбранного target объекта по всем трём осям (в нашем случае - First Person Controller), т.е. повторяет все движения, производимые игроком с отклонением по одной из осей (т.е. повторяет движения на расстоянии). Не реагирует на коллизии. Взаимодействует со стандартным скриптом MouseLook (либо, MouseLook может быть встроен в этот скрипт сразу).
Пока, вместо скрипта использую второй FP контроллер – но он не подходит по целому ряду причин.

Мне кажется скрипт не очень сложный для человека, знающего язык. Сколько времени может занять написание такого скрипта? И всё ли понятно в описании, что он из себя представляет?
druggon
UNец
 
Сообщения: 18
Зарегистрирован: 09 мар 2011, 13:36

Re: Проблема с OnMouseDown

Сообщение BlackMamba 09 мар 2011, 20:04

var target : Object;
target = GameObject.Find("имя ведущего объекта");

function Update() {
transform.position = target.transform.position;
}
если нужно повторять и вращения делаем аналогично с transform.rotation
должно работать :-s

ой, извиняюсь, это будет только повторять движение, но не выбирать объект
Последний раз редактировалось BlackMamba 09 мар 2011, 20:56, всего редактировалось 1 раз.
mail: _gdeMoiGusi@gmail.com
skype: Ellseworth
Аватара пользователя
BlackMamba
UNITрон
 
Сообщения: 305
Зарегистрирован: 06 янв 2011, 16:16
Откуда: Москва

Re: Проблема с OnMouseDown

Сообщение druggon 09 мар 2011, 20:42

Спасибо, буду дома, попробую!
druggon
UNец
 
Сообщения: 18
Зарегистрирован: 09 мар 2011, 13:36

Re: Проблема с OnMouseDown

Сообщение druggon 09 мар 2011, 21:48

Скрипт работает и он может стать основой, но в нём не хватает одной важной детали. Он должен повторять движение относительно своего местоположения, а не просто копировать координаты target объекта.
Либо же, из координаты одной из осей он должен постоянно вычитать какое-то число.

Есть какие-нибудь мысли, как это можно реализовать?
Последний раз редактировалось druggon 09 мар 2011, 22:21, всего редактировалось 1 раз.
druggon
UNец
 
Сообщения: 18
Зарегистрирован: 09 мар 2011, 13:36

Re: Проблема с OnMouseDown

Сообщение seaman 09 мар 2011, 21:53

Ну ты хоть чуток то подумай. Сам же сказал - нужно вычесть число - вычти (лучше вектор)...
seaman
Адепт
 
Сообщения: 8352
Зарегистрирован: 24 янв 2011, 12:32
Откуда: Самара

Re: Проблема с OnMouseDown

Сообщение BlackMamba 09 мар 2011, 22:36

точно, забыл про разницу в положениях, возможно так:
var target : Object;
target = GameObject.Find("имя ведущего объекта");
var offset : Vector3;
offset = transform.position - target.transform.position;

function Update() {
transform.position = target.transform.position + offset;
}
mail: _gdeMoiGusi@gmail.com
skype: Ellseworth
Аватара пользователя
BlackMamba
UNITрон
 
Сообщения: 305
Зарегистрирован: 06 янв 2011, 16:16
Откуда: Москва

Re: Проблема с OnMouseDown

Сообщение druggon 09 мар 2011, 23:01

BlackMamba
Спасибо, работает идеально! Сам бы я очень долго догонял это...

seaman
Очень хочется иногда самому включать мозг, но отсутсвие каких-либо базовых знаний языков программирования и отсутсвие понимания структуры в целом - не позволяют (
Хотел бы быть в этом силен, но пока склоняюсь к более творческим вещам.
druggon
UNец
 
Сообщения: 18
Зарегистрирован: 09 мар 2011, 13:36

След.

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

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

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