Unity 6.3
0 онлайн 85 гостей 3 в системе
Вход

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.