Make the window repaint.
Randomize the rotation of the Selected Objects.
// Simple script that randomizes the rotation of the Selected GameObjects // and lets you see which objects are currently selected
using UnityEngine; using UnityEditor;
public class RandomizeInSelection : EditorWindow { string selected = ""; public float rotationAmount = 0.33f;
[MenuItem("Example/Randomize Children In Selection")] static void Init() { RandomizeInSelection window = EditorWindow.GetWindow<RandomizeInSelection>(true, "Select Randomized Selected Objects"); window.ShowUtility(); }
void OnInspectorUpdate() { Repaint(); }
void OnGUI() { foreach (var transform in Selection.transforms) selected += transform.name + " ";
EditorGUILayout.LabelField("Selected Object:", selected);
selected = ""; if (GUILayout.Button("Randomize!")) RandomizeSelected();
if (GUILayout.Button("Close")) this.Close(); }
void RandomizeSelected() { foreach (var transform in Selection.transforms) { var rotation = Random.rotation; transform.localRotation = Quaternion.Slerp(transform.localRotation, rotation, rotationAmount); } } }