Version: 5.6
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);

参数

label (可选)字段前的标签。
obj 字段显示的对象。
objType 可以分配的对象类型。
allowSceneObjects 允许分配场景对象。有关更多信息,请参阅“说明”。
options 一个可选的布局选项列表,用于指定额外的布局属性。此处传递的任何值都将覆盖 style 定义的设置。 另请参阅:GUILayout.WidthGUILayout.HeightGUILayout.MinWidthGUILayout.MaxWidthGUILayout.MinHeightGUILayout.MaxHeightGUILayout.ExpandWidthGUILayout.ExpandHeight

返回

Object 用户已设置的对象。

描述

生成一个可接收任何对象类型的字段。

您可以通过拖放或使用对象选择器选择对象来分配对象。

如果对象引用作为资源的一部分进行存储,请确保 allowSceneObjects 参数为 false,因为资源无法存储对场景中对象的引用。

如果 ObjectField 是脚本组件的自定义编辑器的一部分,请使用 EditorUtility.IsPersistent() 检查该组件是在资源中还是在场景对象中。

有关更多信息,请参阅 Editor 类中的示例。


Search for a help page by selecting the GameObject in the Object Field.

// 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("http://forum.unity3d.com/search.php"); } } }

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);

参数

property 字段显示的对象引用属性。
objType 可以分配的对象类型。
label (可选)字段前的标签。传递 GUIContent.none 以隐藏标签。
options An optional list of layout options that specify extra layouting properties. Any values passed in here will override settings defined by the style.
See Also: GUILayout.Width, GUILayout.Height, GUILayout.MinWidth, GUILayout.MaxWidth, GUILayout.MinHeight, GUILayout.MaxHeight, GUILayout.ExpandWidth, GUILayout.ExpandHeight.

描述

生成一个可接收任何对象类型的字段。


Obsolete public static Object ObjectField (Object obj, Type objType, params GUILayoutOption[] options);
Obsolete public static Object ObjectField (string label, Object obj, Type objType, params GUILayoutOption[] options);
Obsolete public static Object ObjectField (GUIContent label, Object obj, Type objType, params GUILayoutOption[] options);

参数

obj 字段显示的对象。
objType 可以分配的对象类型。
label (可选)字段前的标签。
label (可选)字段前的标签。
options 一个可选的布局选项列表,用于指定额外的布局属性。此处传递的任何值都将覆盖 style 定义的设置。 另请参阅:GUILayout.WidthGUILayout.HeightGUILayout.MinWidthGUILayout.MaxWidthGUILayout.MinHeightGUILayout.MaxHeightGUILayout.ExpandWidthGUILayout.ExpandHeight

描述

生成一个可接收任何对象类型的字段。

已弃用