EditorGUILayout.ObjectField
Declaration
public static Object ObjectField(Object obj, Type objType, bool allowSceneObjects, params GUILayoutOption[] options);public static Object ObjectField(string label, Object obj, Type objType, bool allowSceneObjects, params GUILayoutOption[] options);public static Object ObjectField(GUIContent label, Object obj, Type objType, bool allowSceneObjects, params GUILayoutOption[] options);public static Object ObjectField(Object obj, Type objType, Object targetBeingEdited, params GUILayoutOption[] options);Параметры
| Параметр | Описание |
|---|---|
| метка | Факультативный знак перед полем. |
| Объект | Объект, который показывает поле. |
| objType | Тип объектов, которые можно назначить. |
| allowSceneObjects | Разрешить назначение Scene объектов. Подробнее см. Описание. |
| варианты | Необязательный список параметров компоновки, задающих дополнительные свойства раскладки. Любые переданные здесь значения переопределяют настройки, заданные styleДополнительные ресурсы: GUILayout.Width, GUILayout.Height, GUILayout.MinWidth, GUILayout.MaxWidth, GUILayout.MinHeight,
GUILayout.MaxHeight, GUILayout.ExpandWidth, GUILayout.ExpandHeight. |
| targetBeingEdited | Необязательный объект, используемый для фильтрации критериев выбора. Если целевой объект является постоянным, то объекты сцены доступны для выбора. Если целевой объект является GameObject или Компонентом, то выбор ограничивается объектами в той же сцене, что и целевой объект. |
Возвращаемое значение
Объект Объект, который был установлен пользователем.
Описание
Сделайте поле для получения любого типа объекта.
Объекты можно назначать либо путем перетаскивания, либо путем выбора объекта с помощью Выборщика Объектов.
Обеспечить, чтобы allowSceneObjects параметр false, если ссылка на объект хранится как часть ассета, так как ассеты не могут хранить ссылки на объекты в Scene.
Если ObjectField является частью пользовательского редактора для компонента скрипта, используйте EditorUtility.IsPersistent(), чтобы проверить, находится ли компонент на ассете или на объекте Scene.
См. пример в Editor классе — дополнительные сведения.
Поиск страницы справки, выбрав GameObject в поле Объект.
// EditorScript that quickly searches for a help page // about the selected Object. // // If no such page is found in the Manual it opens the Unity forum.
using UnityEditor; using UnityEngine; using System.Collections;
public class ExampleClass : EditorWindow { public Object source;
[MenuItem("Example/ObjectField Example _h")] static void Init() { var window = GetWindowWithRect<ExampleClass>(new Rect(0, 0, 165, 100)); window.Show(); }
void OnGUI() { EditorGUILayout.BeginHorizontal(); source = EditorGUILayout.ObjectField(source, typeof(Object), true); EditorGUILayout.EndHorizontal();
if (GUILayout.Button("Search!")) { if (source == null) ShowNotification(new GUIContent("No object selected for searching")); else if (Help.HasHelpForObject(source)) Help.ShowHelpForObject(source); else Help.BrowseURL("https://forum.unity3d.com/search.php"); } } }
Вы также можете использовать параметр options для изменения внешнего вида контроля. В следующем примере изменяется внешний вид Sprite ObjectField, который отображается в формате большого поля.
Два различных варианта макета для поля sprite.
using UnityEditor; using UnityEngine;
public class SpriteExample : EditorWindow { public Sprite sprite;
[MenuItem("Example/ObjectField Sprite Example")] static void Init() { var window = GetWindowWithRect<SpriteExample>(new Rect(0, 0, 165, 100)); window.Show(); }
void OnGUI() { sprite = EditorGUILayout.ObjectField(sprite, typeof(Sprite), false, GUILayout.Height(EditorGUIUtility.singleLineHeight)) as Sprite; } }
Declaration
public static void ObjectField(SerializedProperty property, params GUILayoutOption[] options);public static void ObjectField(SerializedProperty property, GUIContent label, params GUILayoutOption[] options);public static void ObjectField(SerializedProperty property, Type objType, params GUILayoutOption[] options);public static void ObjectField(SerializedProperty property, Type objType, GUIContent label, params GUILayoutOption[] options);Параметры
| Параметр | Описание |
|---|---|
| свойство | Свойство ссылки на объект, которое показывает поле. |
| objType | Тип объектов, которые можно назначить. |
| метка | Необязательная метка перед полем. Передайте GUIContent.none, чтобы скрыть метку. |
| варианты | Необязательный список параметров компоновки, задающих дополнительные свойства раскладки. Любые переданные здесь значения переопределяют настройки, заданные style.Дополнительные ресурсы: GUILayout.Width, GUILayout.Height, GUILayout.MinWidth, GUILayout.MaxWidth, GUILayout.MinHeight, GUILayout.MaxHeight, GUILayout.ExpandWidth, GUILayout.ExpandHeight. |
Описание
Сделайте поле для получения любого типа объекта.
Устаревший. Используйте перегрузки в верхней части страницы, с параметром allowSceneObjects.