Version: 2019.4
public static Quaternion Disc (int id, Quaternion rotation, Vector3 position, Vector3 axis, float size, bool cutoffPlane, float snap);
public static Quaternion Disc (Quaternion rotation, Vector3 position, Vector3 axis, float size, bool cutoffPlane, float snap);

パラメーター

idControl id of the handle.
rotationディスクの回転
positionディスクの中心
axis周囲を回転する軸
sizeワールド空間でのディスクのサイズ
cutoffPlaneTrue の場合、円の前面の半分だけドローやドラッグができます。これは多くの重複する(デフォルトの Rotate ツールのような) 回転軸 があるとき、混乱を避けるために便利です。
snapスナップするグリッドサイズ

戻り値

Quaternion ユーザーのハンドル操作によって更新された回転値。ユーザーがハンドルを操作しない場合は、関数に渡した値と同じ値が返されます。

説明

マウスでドラッグして 3D ディスクを作ります。

注意: 画面サイズに対して固定サイズのハンドルを持ちたい場合、HandleUtility.GetHandleSize を使用します。


Disc Handle on the Scene View.

// Name this script "DiscHandleEditor"
using UnityEngine;
using UnityEditor;

[CustomEditor(typeof(DiscHandle))] [CanEditMultipleObjects] public class DiscHandleEditor : Editor { public void OnSceneGUI() { DiscHandle t = (target as DiscHandle);

EditorGUI.BeginChangeCheck(); Quaternion rot = Handles.Disc(t.rot, t.transform.position, new Vector3(1, 1, 0), 5, false, 1);

if (EditorGUI.EndChangeCheck()) { Undo.RecordObject(target, "Disc Rotate"); t.rot = rot; t.Update(); } } }

このハンドルにアタッチしているスクリプト

// Name this script "DiscHandle"
using UnityEngine;
[ExecuteInEditMode]
public class DiscHandle : MonoBehaviour
{
    public Quaternion rot = Quaternion.identity;
    public void Update()
    {
        transform.rotation = rot;
    }
}