版本: Unity 6 (6000.0)
语言英语
  • C#

EditorGUI.BoundsField

建议修改

成功!

感谢您帮助我们提高 Unity 文档的质量。虽然我们无法接受所有提交,但我们确实会阅读用户提出的每一项修改建议,并在适用时进行更新。

关闭

提交失败

由于某种原因,您的修改建议无法提交。请<a>稍后再试</a>。感谢您抽出时间帮助我们提高 Unity 文档的质量。

关闭

取消

声明

public static Bounds BoundsField(Rect position, Bounds value);

声明

public static Bounds BoundsField(Rect position, GUIContent label, Bounds value);

参数

position 屏幕上用于该字段的矩形。
label 可选标签,显示在字段上方。
value 要编辑的值。

返回值

Bounds 用户输入的值。

描述

创建用于输入 Bounds 的 Center 和 Extents 字段。


编辑器窗口中的 Bounds 字段。

另请参阅 扩展编辑器.

using UnityEngine;
using UnityEditor;

// Simple script that shows radius of bounds of selected MeshFilter

class EditorGUILayoutBoundsField : EditorWindow { float radius = 0; Bounds bounds;

[MenuItem("Examples/Show Radius of mesh bounds")] static void Init() { var window = GetWindow<EditorGUILayoutBoundsField>(); window.Show(); }

void OnGUI() { GUILayout.Label("Select a mesh in the Hierarchy view and click 'Capture Bounds'"); EditorGUILayout.BeginHorizontal(); bounds = EditorGUILayout.BoundsField("Mesh bounds:", bounds);

if (GUILayout.Button("Capture Bounds") && Selection.activeTransform) { MeshFilter meshFilter = Selection.activeTransform.GetComponentInChildren<MeshFilter>(); if (meshFilter) { bounds = meshFilter.sharedMesh.bounds; } } EditorGUILayout.EndHorizontal();

EditorGUILayout.LabelField("Radius:", bounds.size.magnitude.ToString()); if (GUILayout.Button("Close")) { this.Close(); } } }