UnityEditor.ColliderUtil.GetCapsuleExtents C# (CSharp) Method

GetCapsuleExtents() public static method

public static GetCapsuleExtents ( CapsuleCollider cc ) : Vector3
cc UnityEngine.CapsuleCollider
return Vector3
        public static Vector3 GetCapsuleExtents(CapsuleCollider cc)
        {
            Vector3 vector;
            INTERNAL_CALL_GetCapsuleExtents(cc, out vector);
            return vector;
        }

Usage Example

        public void OnSceneGUI()
        {
            bool            flag   = GUIUtility.hotControl == this.m_HandleControlID;
            CapsuleCollider target = (CapsuleCollider)base.target;
            Color           color  = Handles.color;

            if (target.enabled)
            {
                Handles.color = Handles.s_ColliderHandleColor;
            }
            else
            {
                Handles.color = Handles.s_ColliderHandleColorDisabled;
            }
            bool enabled = GUI.enabled;

            if (!base.editingCollider && !flag)
            {
                GUI.enabled   = false;
                Handles.color = new Color(1f, 0f, 0f, 0.001f);
            }
            Vector3   capsuleExtents = ColliderUtil.GetCapsuleExtents(target);
            float     num            = capsuleExtents.y + (2f * capsuleExtents.x);
            float     x          = capsuleExtents.x;
            Matrix4x4 matrix     = ColliderUtil.CalculateCapsuleTransform(target);
            int       hotControl = GUIUtility.hotControl;
            float     height     = target.height;
            Vector3   localPos   = (Vector3)((Vector3.left * num) * 0.5f);
            float     num5       = SizeHandle(localPos, Vector3.left, matrix, true);

            if (!GUI.changed)
            {
                num5 = SizeHandle(-localPos, Vector3.right, matrix, true);
            }
            if (GUI.changed)
            {
                float num6 = num / target.height;
                height += num5 / num6;
            }
            float radius = target.radius;

            num5 = SizeHandle((Vector3)(Vector3.forward * x), Vector3.forward, matrix, true);
            if (!GUI.changed)
            {
                num5 = SizeHandle((Vector3)(-Vector3.forward * x), -Vector3.forward, matrix, true);
            }
            if (!GUI.changed)
            {
                num5 = SizeHandle((Vector3)(Vector3.up * x), Vector3.up, matrix, true);
            }
            if (!GUI.changed)
            {
                num5 = SizeHandle((Vector3)(-Vector3.up * x), -Vector3.up, matrix, true);
            }
            if (GUI.changed)
            {
                float num8 = Mathf.Max((float)(capsuleExtents.z / target.radius), (float)(capsuleExtents.x / target.radius));
                radius += num5 / num8;
            }
            if ((hotControl != GUIUtility.hotControl) && (GUIUtility.hotControl != 0))
            {
                this.m_HandleControlID = GUIUtility.hotControl;
            }
            if (GUI.changed)
            {
                Undo.RecordObject(target, "Modify Capsule Collider");
                target.radius = Mathf.Max(radius, 1E-05f);
                target.height = Mathf.Max(height, 1E-05f);
            }
            Handles.color = color;
            GUI.enabled   = enabled;
        }
All Usage Examples Of UnityEditor.ColliderUtil::GetCapsuleExtents