Объявление
public static Vector3 Vector3Field(string label, Vector3 value, params GUILayoutOption[] options);public static Vector3 Vector3Field(GUIContent label, Vector3 value, params GUILayoutOption[] options);
Параметры
label | Метка для отображения над полем. |
value | Значение для редактирования. |
options | Необязательный список параметров макета, определяющих дополнительные свойства макета. Любые переданные здесь значения переопределяют настройки, заданные стилем .Смотрите так же: GUILayout.Width, GUILayout.Height, GUILayout.MinWidth, GUILayout.MaxWidth, GUILayout.MinHeight, GUILayout.MaxHeight, GUILayout.ExpandWidth, GUILayout.ExpandHeight. |
Возвращает
Vector3 Значение, введенное пользователем.
Описание
Создаёт поле X, Y и Z для ввода Vector3.

using UnityEditor;
using UnityEngine;
public class EditorGUILayoutVector3Field : UnityEditor.EditorWindow
{
float distance = 0f;
Vector3 obj1;
Vector3 obj2;
[MenuItem("Examples/Measure Distance between 2 objects")]
static void Init()
{
EditorGUILayoutVector3Field window = (EditorGUILayoutVector3Field)EditorWindow.GetWindow(typeof(EditorGUILayoutVector3Field), true, "My Empty Window");
window.Show();
}
void OnGUI()
{
GUILayout.Label("Select an object in the Hierarchy view and click 'Capture Position'");
EditorGUILayout.BeginHorizontal();
obj1 = EditorGUILayout.Vector3Field("GameObject 1:", obj1);
if (GUILayout.Button("Capture Position"))
obj1 = Selection.activeTransform.position;
EditorGUILayout.EndHorizontal();
EditorGUILayout.BeginHorizontal();
obj2 = EditorGUILayout.Vector3Field("GameObject 2:", obj2);
if (GUILayout.Button("Capture Position"))
obj2 = Selection.activeTransform.position;
EditorGUILayout.EndHorizontal();
EditorGUILayout.LabelField("Distance:", distance.ToString());
if (GUILayout.Button("Close"))
this.Close();
}
void OnInspectorUpdate()
{
distance = Vector3.Distance(obj1, obj2);
this.Repaint();
}
}