Esempio n. 1
0
        protected override void DrawWireframe()
        {
            CapsuleBoundsHandle.HeightAxis vector3Axis  = CapsuleBoundsHandle.HeightAxis.Y;
            CapsuleBoundsHandle.HeightAxis vector3Axis2 = CapsuleBoundsHandle.HeightAxis.Z;
            CapsuleBoundsHandle.HeightAxis heightAxis   = this.heightAxis;
            if (heightAxis != CapsuleBoundsHandle.HeightAxis.Y)
            {
                if (heightAxis == CapsuleBoundsHandle.HeightAxis.Z)
                {
                    vector3Axis  = CapsuleBoundsHandle.HeightAxis.X;
                    vector3Axis2 = CapsuleBoundsHandle.HeightAxis.Y;
                }
            }
            else
            {
                vector3Axis  = CapsuleBoundsHandle.HeightAxis.Z;
                vector3Axis2 = CapsuleBoundsHandle.HeightAxis.X;
            }
            bool    flag    = base.IsAxisEnabled((int)this.heightAxis);
            bool    flag2   = base.IsAxisEnabled((int)vector3Axis);
            bool    flag3   = base.IsAxisEnabled((int)vector3Axis2);
            Vector3 vector  = CapsuleBoundsHandle.s_HeightAxes[this.m_HeightAxis];
            Vector3 vector2 = CapsuleBoundsHandle.s_HeightAxes[CapsuleBoundsHandle.s_NextAxis[this.m_HeightAxis]];
            Vector3 vector3 = CapsuleBoundsHandle.s_HeightAxes[CapsuleBoundsHandle.s_NextAxis[CapsuleBoundsHandle.s_NextAxis[this.m_HeightAxis]]];
            float   radius  = this.radius;
            float   height  = this.height;
            Vector3 vector4 = base.center + vector * (height * 0.5f - radius);
            Vector3 vector5 = base.center - vector * (height * 0.5f - radius);

            if (flag)
            {
                if (flag3)
                {
                    Handles.DrawWireArc(vector4, vector2, vector3, 180f, radius);
                    Handles.DrawWireArc(vector5, vector2, vector3, -180f, radius);
                    Handles.DrawLine(vector4 + vector3 * radius, vector5 + vector3 * radius);
                    Handles.DrawLine(vector4 - vector3 * radius, vector5 - vector3 * radius);
                }
                if (flag2)
                {
                    Handles.DrawWireArc(vector4, vector3, vector2, -180f, radius);
                    Handles.DrawWireArc(vector5, vector3, vector2, 180f, radius);
                    Handles.DrawLine(vector4 + vector2 * radius, vector5 + vector2 * radius);
                    Handles.DrawLine(vector4 - vector2 * radius, vector5 - vector2 * radius);
                }
            }
            if (flag2 && flag3)
            {
                Handles.DrawWireArc(vector4, vector, vector2, 360f, radius);
                Handles.DrawWireArc(vector5, vector, vector2, -360f, radius);
            }
        }
Esempio n. 2
0
 /// <summary>
 /// 绘制 Capsule 调节框
 /// </summary>
 public static void CapsuleHandle(Transform transform, ref Vector3 center, ref float radius, ref float height, Color color, CapsuleBoundsHandle.HeightAxis axis)
 {
     using (new HandlesMatrixScope(transform.localToWorldMatrix))
     {
         CapsuleHandle(ref center, ref radius, ref height, color, axis);
     }
 }
Esempio n. 3
0
 /// <summary>
 /// 绘制 Capsule 调节框
 /// </summary>
 public static void CapsuleHandle(ref Vector3 center, ref float radius, ref float height, Color color, CapsuleBoundsHandle.HeightAxis axis)
 {
     capsuleBoundsHandle.center     = center;
     capsuleBoundsHandle.radius     = radius;
     capsuleBoundsHandle.height     = height;
     capsuleBoundsHandle.heightAxis = axis;
     capsuleBoundsHandle.SetColor(color);
     capsuleBoundsHandle.DrawHandle();
     center = capsuleBoundsHandle.center;
     radius = capsuleBoundsHandle.radius;
     height = capsuleBoundsHandle.height;
 }
Esempio n. 4
0
    public static void CapsuleBoundsHandle(Vector3 center, Quaternion rotation, Vector3 size, ref float height, ref float radius, CapsuleBoundsHandle.HeightAxis heightAxis, PrimitiveBoundsHandle.Axes handleAxes, Color handleColor, Color wireframeColor)
    {
        Matrix4x4 trs = Matrix4x4.TRS(center, rotation, size);

        using (new Handles.DrawingScope(trs)) {
            capsuleBoundsHandle.heightAxis     = heightAxis;
            capsuleBoundsHandle.axes           = handleAxes;
            capsuleBoundsHandle.radius         = radius;
            capsuleBoundsHandle.height         = height;
            capsuleBoundsHandle.handleColor    = handleColor;
            capsuleBoundsHandle.wireframeColor = wireframeColor;
            capsuleBoundsHandle.DrawHandle();
            radius = capsuleBoundsHandle.radius;
            height = capsuleBoundsHandle.height;
        }
    }
Esempio n. 5
0
 public static void CapsuleBoundsHandle(Vector3 center, Quaternion rotation, Vector3 size, ref float height, ref float radius, CapsuleBoundsHandle.HeightAxis heightAxis, PrimitiveBoundsHandle.Axes handleAxes)
 {
     CapsuleBoundsHandle(center, rotation, size, ref height, ref radius, heightAxis, handleAxes, capsuleBoundsHandle.handleColor, capsuleBoundsHandle.wireframeColor);
 }