将 EditorWindow 显示为浮动实用程序窗口。
Utility windows will always be in front of normal windows, and will be hidden when user switches to another application.
Note: You dont need to use EditorWindow.GetWindow() before using this function to show the window.
Floating window utility that lets you randomize the rotation of the selected objects.
using UnityEditor;
using UnityEngine;
using System.Collections;
// Simple script that randomizes the rotation of the Selected GameObjects
// and lets you see which objects are currently selected
public class RandomizeInSelection : EditorWindow
{
public float rotationAmount = 0.33F;
public string selected = "";
void RandomizeSelected()
{
foreach (var transform in Selection.transforms)
{
Quaternion rotation = Random.rotation;
transform.localRotation = Quaternion.Slerp(transform.localRotation, rotation, rotationAmount);
}
}
void OnGUI()
{
foreach (var t in Selection.transforms)
{
selected += t.name + " ";
}
EditorGUILayout.LabelField("Selected Object:", selected);
selected = "";
if (GUILayout.Button("Randomize!"))
RandomizeSelected();
if (GUILayout.Button("Close"))
Close();
Debug.Log(selected);
}
void OnInspectorUpdate()
{
Repaint();
}
[MenuItem("Example/Randomize Children In Selection")]
static void RandomizeWindow()
{
RandomizeInSelection window = new RandomizeInSelection();
window.ShowUtility();
}
}