Пример #1
0
    private void OnDrawGizmos()
    {
        ScreenGuiTest item = this;
        Transform     tr   = item.transform;

        Handles.color = Color.red;
        float halfAngle = item.viewingAngle * 0.5f;

        //// 아크 그리기
        Handles.DrawWireArc(tr.position, tr.up
                            , tr.forward.AngleToYDirection(-halfAngle), item.viewingAngle
                            , item.viewingDistance);

        item.viewingDistance = (float)Handles.ScaleValueHandle
                                   (item.viewingDistance, tr.position + tr.forward * item.viewingDistance
                                   , tr.rotation, 1, Handles.ConeHandleCap, 1);

        // 아크의 왼쪽 오른쪽 직선 그리기
        Handles.DrawLine(tr.position
                         , tr.forward.AngleToYDirection(-halfAngle) * item.viewingDistance);// 왼쪽선 그리기.

        Handles.DrawLine(tr.position
                         , tr.forward.AngleToYDirection(halfAngle) * item.viewingDistance); // 오른쪽선 그리기.

        GUIStyle style = new GUIStyle();

        style.fontStyle        = FontStyle.Bold;
        style.normal.textColor = Color.red;
        Vector3 namePos = tr.position;

        Handles.Label(namePos, "텍스트", style);
    }
Пример #2
0
    void OnSceneGUI()
    {
        ScreenGuiTest item = (ScreenGuiTest)target;
        Transform     tr   = item.transform;

        item.viewingDistance = (float)Handles.ScaleValueHandle(item.viewingDistance
                                                               , tr.position + tr.forward * item.viewingDistance
                                                               , tr.rotation, 1, Handles.ConeHandleCap, 1);
    }
Пример #3
0
    private void OnDrawGizmos()
    {
        // 디버그_라인그리기
        if (EditorOption.Options[OptionType.디버그_라인그리기] == false)
        {
            return;
        }

        ScreenGuiTest item = this;
        Transform     tr   = item.transform;

        Handles.color = Color.red;
        float halfAngle = item.viewingAngle * 0.5f;

        // 아크 그리기
        // tr.up = vector3(0, 1, 0) = 초록색 축 = y축
        // tr.forward = vector3(0, 0, 1) = 파란색 축 = z축
        Handles.DrawWireArc(tr.position, tr.up
                            , tr.forward.AngleToYDirection(-halfAngle), item.viewingAngle
                            , item.viewingDistance);

        item.viewingDistance = (float)Handles.ScaleValueHandle
                                   (item.viewingDistance, tr.position + tr.forward * item.viewingDistance
                                   , tr.rotation, 3, Handles.ConeHandleCap, 1);

        // 아크의 왼쪽 오른쪽 직선 그리기
        // 원하는 각도만큼 방향을 돌리려면 rotation(각도) * vector3(object.tr.directoin)
        Handles.DrawLine(tr.position
                         , tr.forward.AngleToYDirection(-halfAngle) * item.viewingDistance);// 왼쪽선 그리기.

        Handles.DrawLine(tr.position
                         , tr.forward.AngleToYDirection(halfAngle) * item.viewingDistance); // 오른쪽선 그리기.

        // 문자열 그리기
        GUIStyle style = new GUIStyle();

        style.fontStyle        = FontStyle.Bold;
        style.normal.textColor = Color.red;
        Vector3 namePos = tr.position;

        Handles.Label(namePos, "텍스트", style);
    }