private void OnGUI()
{
if (ms_Styles == null)
{
ms_Styles = new Styles();
}
GUILayout.Space(5f);
EditorGUI.BeginChangeCheck();
Vector3 move = SnapSettings.move;
move.x = EditorGUILayout.FloatField(ms_Styles.moveX, move.x, new GUILayoutOption[0]);
move.y = EditorGUILayout.FloatField(ms_Styles.moveY, move.y, new GUILayoutOption[0]);
move.z = EditorGUILayout.FloatField(ms_Styles.moveZ, move.z, new GUILayoutOption[0]);
if (EditorGUI.EndChangeCheck())
{
if (move.x <= 0f)
{
move.x = SnapSettings.move.x;
}
if (move.y <= 0f)
{
move.y = SnapSettings.move.y;
}
if (move.z <= 0f)
{
move.z = SnapSettings.move.z;
}
SnapSettings.move = move;
}
scale = EditorGUILayout.FloatField(ms_Styles.scale, scale, new GUILayoutOption[0]);
rotation = EditorGUILayout.FloatField(ms_Styles.rotation, rotation, new GUILayoutOption[0]);
GUILayout.Space(5f);
bool flag = false;
bool flag2 = false;
bool flag3 = false;
GUILayout.BeginHorizontal(new GUILayoutOption[0]);
if (GUILayout.Button(ms_Styles.snapAllAxes, ms_Styles.buttonLeft, new GUILayoutOption[0]))
{
flag = true;
flag2 = true;
flag3 = true;
}
if (GUILayout.Button(ms_Styles.snapX, ms_Styles.buttonMid, new GUILayoutOption[0]))
{
flag = true;
}
if (GUILayout.Button(ms_Styles.snapY, ms_Styles.buttonMid, new GUILayoutOption[0]))
{
flag2 = true;
}
if (GUILayout.Button(ms_Styles.snapZ, ms_Styles.buttonRight, new GUILayoutOption[0]))
{
flag3 = true;
}
GUILayout.EndHorizontal();
if ((flag | flag2) | flag3)
{
Vector3 vector5 = new Vector3(1f / SnapSettings.move.x, 1f / SnapSettings.move.y, 1f / SnapSettings.move.z);
Undo.RecordObjects(Selection.transforms, "Snap " + ((Selection.transforms.Length != 1) ? " selection" : Selection.activeGameObject.name) + " to grid");
foreach (Transform transform in Selection.transforms)
{
Vector3 position = transform.position;
if (flag)
{
float introduced15 = Mathf.Round(position.x * vector5.x);
position.x = introduced15 / vector5.x;
}
if (flag2)
{
float introduced16 = Mathf.Round(position.y * vector5.y);
position.y = introduced16 / vector5.y;
}
if (flag3)
{
float introduced17 = Mathf.Round(position.z * vector5.z);
position.z = introduced17 / vector5.z;
}
transform.position = position;
}
}
}