Страница 1 из 2
Ох уж этот Ray. Замучался, нужна подсказка.
Добавлено:
21 май 2011, 11:57
Quasar
Вот осваиваю 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);
}
Re: Ох уж этот Ray. Замучался, нужна подсказка.
Добавлено:
21 май 2011, 12:39
seaman
А Вы прочитали ошибку то, которую он Вам выдал? Там же ясно написано что в CameraZoom.Update () не указан какой-то объект, необходимый для работы того скрипта. Ну а какой объект - Вам видней, т.к. Вы привели совсем не нужный для решения проблемы код...
Re: Ох уж этот Ray. Замучался, нужна подсказка.
Добавлено:
21 май 2011, 12:55
Quasar
Ок. Если не затруднит приведите пример строчки кода, которая описывает коллизию луча и обьекта. Не могу догнать
Приведу интересующую меня задачу: При коллизии луча и куба, куб уничтожался(Destroy).
Знаю, что это основы. Но буду благодарен, за этот маленький но, очень важный для моего понимания кусок кода)
Re: Ох уж этот Ray. Замучался, нужна подсказка.
Добавлено:
21 май 2011, 13:23
seaman
Ну Вы же его привели. Если у Вас ошибка в другом скрипте, зачем этот мучать?
Re: Ох уж этот Ray. Замучался, нужна подсказка.
Добавлено:
21 май 2011, 13:50
Quasar
Ошибка именно в этом коде)) В hit.collider
Re: Ох уж этот Ray. Замучался, нужна подсказка.
Добавлено:
21 май 2011, 14:14
seaman
Вы писали:
Object reference not set to an instance of an object CameraZoom.Update () (at Assets/Script/CameraZoom.cs:23)"
Четко написано где ошибка. Приведите эту строку, пожалуйста...
Re: Ох уж этот Ray. Замучался, нужна подсказка.
Добавлено:
21 май 2011, 14:19
Quasar
if (hit.collider.gameObject.tag == "Player")
Re: Ох уж этот Ray. Замучался, нужна подсказка.
Добавлено:
21 май 2011, 14:22
seaman
Может на Вашем объекте нет тега?
Re: Ох уж этот Ray. Замучался, нужна подсказка.
Добавлено:
21 май 2011, 14:27
Quasar
Да нет, на кубе установлен стандартный тег Player....
Re: Ох уж этот Ray. Замучался, нужна подсказка.
Добавлено:
21 май 2011, 14:50
seaman
Ох, е...
Ну я и ступил.
А где Вы hit устанавливаете? Нужно
Используется csharp
if( Physics.Raycast(transform.position, fwd, hit, 10) == true)
Re: Ох уж этот Ray. Замучался, нужна подсказка.
Добавлено:
21 май 2011, 14:57
Quasar
Нет, опять ошибка)) Use of unassigned local variable `hit' в этой строке
Re: Ох уж этот Ray. Замучался, нужна подсказка.
Добавлено:
21 май 2011, 15:05
Quasar
Может пнете на реальный пример?? Я на форуме не нашел исходников данного типа
Re: Ох уж этот Ray. Замучался, нужна подсказка.
Добавлено:
21 май 2011, 16:35
Zaicheg
Перенесено.
Re: Ох уж этот Ray. Замучался, нужна подсказка.
Добавлено:
21 май 2011, 16:36
seaman
Используется 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);
}
Re: Ох уж этот Ray. Замучался, нужна подсказка.
Добавлено:
22 май 2011, 03:33
Quasar
Спасибо огромное за помошь! Все заработало!