シーンビューで 3D GUI の制御と描画のカスタマイズを行うクラス
Handles are the 3D controls that Unity uses to manipulate items in the Scene view. There are a number of built-in Handle GUIs, such as the familiar tools to position, scale and rotate an object via the Transform component. However, it is also possible to define your own Handle GUIs to use with custom component editors. Such GUIs can be a very useful way to edit procedurally-generated Scene content, "invisible" items and groups of related objects, such as waypoints and location markers.
You can also supplement the 3D Handle GUI in the Scene with 2D buttons and other controls overlaid on the Scene view. This is done by enclosing standard Unity GUI calls in a Handles.BeginGUI and Handles.EndGUI pair within the Editor.OnSceneGUI function. You can use HandleUtility.GUIPointToWorldRay and HandleUtility.WorldToGUIPoint to convert coordinates between 2D GUI and 3D world coordinates.
using UnityEngine; using UnityEditor; public class ExampleScript : MonoBehaviour { public float value = 7.0f; }
// A tiny custom editor for ExampleScript component [CustomEditor(typeof(ExampleScript))] public class ExampleEditor : Editor { // Custom in-scene UI for when ExampleScript // component is selected. public void OnSceneGUI() { var t = target as ExampleScript; var tr = t.transform; var pos = tr.position; // display an orange disc where the object is var color = new Color(1, 0.8f, 0.4f, 1); Handles.color = color; Handles.DrawWireDisc(pos, tr.up, 1.0f); // display object "value" in scene GUI.color = color; Handles.Label(pos, t.value.ToString("F1")); } }
.
centerColor | 中心を示すハンドルに使用する色 |
color | Colors of the handles. |
inverseMatrix | すべてのハンドル操作の逆行列 |
lighting | ハンドルが点灯しているかどうか |
lineThickness | Retrieves the user preference setting that controls the thickness of tool handle lines. (Read Only) |
matrix | すべてのハンドル操作の行列 |
preselectionColor | Color to use to highlight an unselected handle currently under the mouse pointer. |
secondaryColor | Soft color to use for for general things. |
selectedColor | 現在アクティブなハンドルに使用する色 |
UIColliderHandleColor | Color to use for the Unity UI's padding visualization. |
xAxisColor | Color to use for handles that manipulates the X coordinate of something. |
yAxisColor | Y 座標を操作するハンドルに使用する色 |
zAxisColor | Z 座標を操作するハンドルに使用する色 |
zTest | zTest of the handles. |
currentCamera | ビューポートや各種設定をするためにアクセスする現在使用しているカメラ |
ArrowHandleCap | Move ツールで使用されるような Arrow を描画します。 |
BeginGUI | 3D ハンドル GUI 内で 2D GUI の描画を開始します。 |
Button | Make a 3D Button. |
CircleHandleCap | サークルハンドルを描き、これをハンドル関数に渡します。 |
ClearCamera | カメラをクリアします。 |
ConeHandleCap | コーン(円錐) ハンドルを描き、これをハンドル関数に渡します。 |
CubeHandleCap | キューブハンドルを描き、これをハンドル関数に渡します。 |
CylinderHandleCap | シリンダー ハンドルを描き、これをハンドル関数に渡します。 |
Disc | マウスでドラッグして 3D ディスクを作ります。 |
DotHandleCap | ドットハンドルを描き、これをハンドル関数に渡します。 |
DrawAAConvexPolygon | ポイント配列で指定されたアンチエイリアス Convex ポリゴンを描画します。 |
DrawAAPolyLine | 位置の配列と幅で指定したアンチエイリアスのかかった線を描きます。 |
DrawBezier | 指定した接線と始点と終点を通るテクスチャベジェ曲線を描画します。 |
DrawCamera | 矩形内部にカメラを描画します。 |
DrawDottedLine | p1 から p2 に点線を描画します。 |
DrawDottedLines | 含まれる線分を点線で描画します。 |
DrawGizmos | Draw a subset of Gizmos (before or after postprocessing) for the given camera. |
DrawLine | Draws a line from p1 to p2. |
DrawLines | 含まれる線分を描画します。 |
DrawPolyLine | Draw a line going through the list of points. |
DrawSelectionFrame | カメラに面しているセレクションフレームを描画します。 |
DrawSolidArc | 3D 空間に扇形を描画します。 |
DrawSolidDisc | 中の空間まで色のついた、フラットな円を 3D 空間に描画します。 |
DrawSolidRectangleWithOutline | 3D 空間に太い実線の矩形を描画します。 |
DrawTexture3DSDF | Draws a 3D texture using Signed Distance Field rendering mode in 3D space. |
DrawTexture3DSlice | Draws a 3D texture using Slice rendering mode in 3D space. |
DrawTexture3DVolume | Draws a 3D texture using Volume rendering mode in 3D space. |
DrawWireArc | Draws a circular arc in 3D space. |
DrawWireCube | center と size からキューブを描画します |
DrawWireDisc | Draws the outline of a flat disc in 3D space. |
EndGUI | 現在のハンドルカメラ上で 2D GUI のブロックを終了し、3D ハンドル GUI に戻ります。 |
FreeMoveHandle | 制約のない移動ハンドルを作成します。 |
FreeRotateHandle | 制約のない回転ハンドルを作成します。 |
GetMainGameViewSize | Get the width and height of the main game view. |
Label | 3D 空間に配置されるテキスト ラベルを作成します。 |
MakeBezierPoints | Retuns an array of points to representing the bezier curve. |
PositionHandle | Make a position handle. |
RadiusHandle | シーンビューに Radius ハンドルを作成します。 |
RectangleHandleCap | 矩形ハンドルを描き、これをハンドル関数に渡します。 |
RotationHandle | シーンビューの Rotation ハンドルを作ります。 |
ScaleHandle | シーンビューの Scale ハンドルを作成します。 |
ScaleSlider | ディレクショナルスケールスライダーを作成します。 |
ScaleValueHandle | Make a 3D handle that scales a single float. |
SetCamera | すべての Handle と Gizmo がその設定で描画されるように現在のカメラを設定してください。 |
ShouldRenderGizmos | Determines whether or not to draw Gizmos. |
Slider | Make a 3D slider that moves along one axis. |
Slider2D | Make a 3D slider that moves along a plane defined by two axes. |
SnapToGrid | Rounds each Transform.position to the closest multiple of EditorSnap.move. |
SnapValue | Rounds value to the closest multiple of snap if snapping is active. Note that snap can only be positive. |
SphereHandleCap | スフィア(球体) ハンドルを描き、これをハンドル関数に渡します。 |
TransformHandle | Creates a transform handle. |
CapFunction | 例えば、ハンドルを描画するために使用する関数 Handles.RectangleCap |
SizeFunction | A delegate type for getting a handle's size based on its current position. |