Рисуем указатель (стрелку) линиями (перпендикуляр)

Раздел, посвящённый всему, что связано с программированием для Редактора Юнити. Скрипты Редактора, Wizards и прочее.

Рисуем указатель (стрелку) линиями (перпендикуляр)

Сообщение [bm] 08 июл 2010, 23:01

Задача:

отобразить последовательность чайлдов к парентам

arrows.PNG

arrows2.png

решение:
Синтаксис:
Используется csharp

    void OnDrawGizmos()
    {
        Gizmos.color = new Color(1, 1, 1, 0.25f);
        Gizmos.DrawCube(transform.position, new Vector3(width * scaleX, -height * scaleY, 1));
        if (!Application.isPlaying) Gizmos.DrawIcon(transform.position, Mathf.Abs(gameObject.GetInstanceID()).ToString() + str);
        if (transform.parent)
        {
            Gizmos.DrawLine(transform.position, transform.parent.position);
            Vector3 direction = transform.position - transform.parent.position; // находим направление
            Vector3 p1 = transform.parent.position + direction.normalized * 20; // находим точку от конца вектора на расстоянии 20
            Gizmos.DrawLine(transform.parent.position, p1); // рисуем линию от child до parent
            direction.Normalize();
            Vector3 p1Normal = Vector3.Project(p1, direction); // проекция вектора в точке p1
            direction = p1 - p1Normal; // определяем направление проекции (перпендикуляр к линии  от child до parent)
            Vector3 p2 = p1 + direction.normalized * 10; // находим точку на расстоянии 20
            Gizmos.DrawLine(p1, p2); // рисуем перпендикуляр <img src="./images/smilies/1.gif" alt=":)" title="Happy" />
            Gizmos.DrawLine(p2, transform.parent.position); // рисуем сторону наконечника
            Vector3 p3 = p1 - direction.normalized * 10; // и тд для другой стороны
            Gizmos.DrawLine(p1, p3);
            Gizmos.DrawLine(p3, transform.parent.position);
        }
    }

 
У вас нет доступа для просмотра вложений в этом сообщении.
Mafia Rush: universal iOS game _https://goo.gl/CKq4D Android _https://goo.gl/slFLXx
Shooter Ball: Android _https://goo.gl/21QyPw
skype: bmindfield
Аватара пользователя
[bm]
UNIверсал
 
Сообщения: 426
Зарегистрирован: 11 май 2010, 22:33
Откуда: Россия, Ижевск

Вернуться в Editor

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

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