Ох уж этот Ray. Замучался, нужна подсказка.

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

Ох уж этот Ray. Замучался, нужна подсказка.

Сообщение Quasar 21 май 2011, 11:57

Вот осваиваю Ray. Fps.tutorial перечитал, форум по поиску слова Ray тоже. "Сварганил" кодик, который выдает ошибку)

Задача: Ray ищет обьект(ы) с тегом "blablabla" и при коллизии что то происходит.

Ошибка - "NullReferenceException: Object reference not set to an instance of an object
CameraZoom.Update () (at Assets/Script/CameraZoom.cs:23)"

Синтаксис:
Используется csharp
Ray ray = camera.ScreenPointToRay(new Vector3(Screen.width / 2,Screen.height / 2, 0));
Debug.DrawRay(ray.origin, ray.direction * 10, Color.yellow);   

RaycastHit hit;
               
Vector3 fwd = transform.TransformDirection(Vector3.forward);
   if (Physics.Raycast(transform.position, fwd, 10) == true){
       if (hit.collider.gameObject.tag == "Player")
                                Destroy(gameObject);
                }
Quasar
UNец
 
Сообщения: 27
Зарегистрирован: 17 май 2011, 13:59

Re: Ох уж этот Ray. Замучался, нужна подсказка.

Сообщение seaman 21 май 2011, 12:39

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

Re: Ох уж этот Ray. Замучался, нужна подсказка.

Сообщение Quasar 21 май 2011, 12:55

Ок. Если не затруднит приведите пример строчки кода, которая описывает коллизию луча и обьекта. Не могу догнать :D

Приведу интересующую меня задачу: При коллизии луча и куба, куб уничтожался(Destroy).

Знаю, что это основы. Но буду благодарен, за этот маленький но, очень важный для моего понимания кусок кода)
Quasar
UNец
 
Сообщения: 27
Зарегистрирован: 17 май 2011, 13:59

Re: Ох уж этот Ray. Замучался, нужна подсказка.

Сообщение seaman 21 май 2011, 13:23

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

Re: Ох уж этот Ray. Замучался, нужна подсказка.

Сообщение Quasar 21 май 2011, 13:50

Ошибка именно в этом коде)) В hit.collider
Quasar
UNец
 
Сообщения: 27
Зарегистрирован: 17 май 2011, 13:59

Re: Ох уж этот Ray. Замучался, нужна подсказка.

Сообщение seaman 21 май 2011, 14:14

Вы писали:
Object reference not set to an instance of an object CameraZoom.Update () (at Assets/Script/CameraZoom.cs:23)"
Четко написано где ошибка. Приведите эту строку, пожалуйста...
seaman
Адепт
 
Сообщения: 8352
Зарегистрирован: 24 янв 2011, 12:32
Откуда: Самара

Re: Ох уж этот Ray. Замучался, нужна подсказка.

Сообщение Quasar 21 май 2011, 14:19

if (hit.collider.gameObject.tag == "Player")
Quasar
UNец
 
Сообщения: 27
Зарегистрирован: 17 май 2011, 13:59

Re: Ох уж этот Ray. Замучался, нужна подсказка.

Сообщение seaman 21 май 2011, 14:22

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

Re: Ох уж этот Ray. Замучался, нужна подсказка.

Сообщение Quasar 21 май 2011, 14:27

Да нет, на кубе установлен стандартный тег Player....
Quasar
UNец
 
Сообщения: 27
Зарегистрирован: 17 май 2011, 13:59

Re: Ох уж этот Ray. Замучался, нужна подсказка.

Сообщение seaman 21 май 2011, 14:50

Ох, е...
Ну я и ступил.
А где Вы hit устанавливаете? Нужно
Синтаксис:
Используется csharp
if( Physics.Raycast(transform.position, fwd, hit, 10) == true)
seaman
Адепт
 
Сообщения: 8352
Зарегистрирован: 24 янв 2011, 12:32
Откуда: Самара

Re: Ох уж этот Ray. Замучался, нужна подсказка.

Сообщение Quasar 21 май 2011, 14:57

Нет, опять ошибка)) Use of unassigned local variable `hit' в этой строке
Quasar
UNец
 
Сообщения: 27
Зарегистрирован: 17 май 2011, 13:59

Re: Ох уж этот Ray. Замучался, нужна подсказка.

Сообщение Quasar 21 май 2011, 15:05

Может пнете на реальный пример?? Я на форуме не нашел исходников данного типа
Quasar
UNец
 
Сообщения: 27
Зарегистрирован: 17 май 2011, 13:59

Re: Ох уж этот Ray. Замучался, нужна подсказка.

Сообщение Zaicheg 21 май 2011, 16:35

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

Re: Ох уж этот Ray. Замучался, нужна подсказка.

Сообщение seaman 21 май 2011, 16:36

Синтаксис:
Используется csharp
Ray ray = camera.ScreenPointToRay(new Vector3(Screen.width / 2,Screen.height / 2, 0));
Debug.DrawRay(ray.origin, ray.direction * 10, Color.yellow);  

RaycastHit hit = new RaycastHit();
               
Vector3 fwd = transform.TransformDirection(Vector3.forward);
   if (Physics.Raycast(transform.position, fwd, hit, 10) == true){
       if (hit.collider.gameObject.tag == "Player")
                                Destroy(gameObject);
                }
seaman
Адепт
 
Сообщения: 8352
Зарегистрирован: 24 янв 2011, 12:32
Откуда: Самара

Re: Ох уж этот Ray. Замучался, нужна подсказка.

Сообщение Quasar 22 май 2011, 03:33

Спасибо огромное за помошь! Все заработало!
Quasar
UNец
 
Сообщения: 27
Зарегистрирован: 17 май 2011, 13:59

След.

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

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

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