public void OnSceneGUI()
{
bool flag = GUIUtility.hotControl == this.m_HandleControlID;
CharacterController target = (CharacterController) 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 (!Event.current.shift && !flag)
{
GUI.enabled = false;
Handles.color = new Color(1f, 0f, 0f, 0.001f);
}
float a = target.height * target.transform.lossyScale.y;
float num2 = target.radius * Mathf.Max(target.transform.lossyScale.x, target.transform.lossyScale.z);
a = Mathf.Max(a, num2 * 2f);
Matrix4x4 matrix = Matrix4x4.TRS(target.transform.TransformPoint(target.center), Quaternion.identity, Vector3.one);
int hotControl = GUIUtility.hotControl;
Vector3 localPos = (Vector3) ((Vector3.up * a) * 0.5f);
float num4 = SizeHandle(localPos, Vector3.up, matrix, true);
if (!GUI.changed)
{
num4 = SizeHandle(-localPos, Vector3.down, matrix, true);
}
if (GUI.changed)
{
Undo.RecordObject(target, "Character Controller Resize");
float num5 = a / target.height;
target.height += num4 / num5;
}
num4 = SizeHandle((Vector3) (Vector3.left * num2), Vector3.left, matrix, true);
if (!GUI.changed)
{
num4 = SizeHandle((Vector3) (-Vector3.left * num2), -Vector3.left, matrix, true);
}
if (!GUI.changed)
{
num4 = SizeHandle((Vector3) (Vector3.forward * num2), Vector3.forward, matrix, true);
}
if (!GUI.changed)
{
num4 = SizeHandle((Vector3) (-Vector3.forward * num2), -Vector3.forward, matrix, true);
}
if (GUI.changed)
{
Undo.RecordObject(target, "Character Controller Resize");
float num6 = num2 / target.radius;
target.radius += num4 / num6;
}
if ((hotControl != GUIUtility.hotControl) && (GUIUtility.hotControl != 0))
{
this.m_HandleControlID = GUIUtility.hotControl;
}
if (GUI.changed)
{
target.radius = Mathf.Max(target.radius, 1E-05f);
target.height = Mathf.Max(target.height, 1E-05f);
}
Handles.color = color;
GUI.enabled = enabled;
}