position | 屏幕上用于滑块的矩形。 |
label | 滑块前面的可选标签。 |
minValue | 滑块显示的范围的较低值,以引用方式传递。 |
maxValue | 滑块显示的范围的较高值,以引用方式传递。 |
minLimit | 滑块左侧的限制。 |
maxLimit | 滑块右侧的限制。 |
制作一个特殊的滑块,用户可以使用它来指定最小值和最大值之间的范围。
编辑器窗口中的最小值和最大值滑块。
using UnityEngine; using UnityEditor;
// Place the selected object randomly between the interval of the Min Max Slider // in the X,Y,Z coords
class EditorGUIMinMaxSlider : EditorWindow { float minVal = -10; float minLimit = -20; float maxVal = 10; float maxLimit = 20;
[MenuItem("Examples/Editor GUI Move Object Randomly")] static void Init() { var window = GetWindow<EditorGUIMinMaxSlider>(); window.Show(); }
void OnGUI() { EditorGUI.MinMaxSlider( new Rect(0, 0, position.width, 20), new GUIContent("Random range:"), ref minVal, ref maxVal, minLimit, maxLimit); if (GUI.Button(new Rect(0, 25, position.width, position.height - 25), "Randomize!")) { PlaceRandomly(); } }
void PlaceRandomly() { if (Selection.activeTransform) { Selection.activeTransform.position = new Vector3( Random.Range(minVal, maxVal), Random.Range(minVal, maxVal), Random.Range(minVal, maxVal) ); } else { Debug.LogError("Select a GameObject to randomize its position."); } } }