Страница 1 из 1

Как нарисовать линию Unity3D

СообщениеДобавлено: 18 янв 2018, 14:25
guno7
Добрый день. Я разрабатываю одну 2D игрушку. При нажатии на кнопку объект опускается до колацдера, сталкивается с колацдером, а потом поднимается. Мне нужно чтоб при опускании объекта он нарисовал линию, а при поднятии забирал эту линию. Как это реализовать? Заранее спасибо

Re: Как нарисовать линию Unity3D

СообщениеДобавлено: 18 янв 2018, 14:35
Paul Siberdt

Re: Как нарисовать линию Unity3D

СообщениеДобавлено: 18 янв 2018, 17:54
guno7
Paul Siberdt писал(а):LineRenderer

Без указания прочих ссылок, можете помочь? Я везде читал, не че не понял

Re: Как нарисовать линию Unity3D

СообщениеДобавлено: 18 янв 2018, 18:23
Paul Siberdt
Это не "прочая ссылка" - это справка Юнити про то, как рисовать линию. Разумеется, разжёвывать уже разжёванное не буду.

Re: Как нарисовать линию Unity3D

СообщениеДобавлено: 18 янв 2018, 18:44
guno7
Извините, но я там нечего не понял

Re: Как нарисовать линию Unity3D

СообщениеДобавлено: 18 янв 2018, 21:17
samana
А справка и на русском тоже есть
Рендер линии

Re: Как нарисовать линию Unity3D

СообщениеДобавлено: 18 янв 2018, 22:19
NAGIBATOR228pacan
Можешь прочитать про GL, там можно рисовать линию по двум точкам
Синтаксис:
Используется csharp
  //void OnRenderObject()
    //{
    //    GL.PushMatrix(); // Понятие не имею что это значит
    //    GL.Begin(GL.LINES);// Тоже понятие не имею что это значит, но тут ты можешь выбрать режим рисование, в данном случаи GL.LINES - линия, между каждыми 2 вершинами он будет рисовать линию, можно написать например GL.TRIANGLES - так он будет рисовать между 3 вершинами треугольник.
    //    mat.SetPass(0);// Материал
    //    GL.Vertex(transform.position);// Самое главное, начало линии 1 вершина
    //    GL.Vertex(NujniiVector);// Самое главное, конец линии 2 вершина
    //    GL.End();// Понятие не имею что это значит
    //    GL.PopMatrix();// Понятие не имею что это значит
    //}
 

Вот пример, кидаешь в скрипт для объекта, если для камеры то пишешь OnPostRender() для объекта OnRenderObject(). Эту функцию вызывать не надо она сама вызывается. mat - материал можешь кидать его через инспектор. Копируй код и он будет рисовать линию между двумя вершинами. И да GL также работает и в 3d, только больше несколько тысяч линий лучше не рисовать с помощью него так как в unity gl какой-то тормазнутый(1 миллион линий - 0.5 фпс).
p.s В данном случаи линия прямая, но кривую можно сделать с помощью массива вершин.

Re: Как нарисовать линию Unity3D

СообщениеДобавлено: 21 янв 2018, 10:44
guno7
Спасибо большое! Очень помог!