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

Parameters

rotation @param rotation Вращение диска.
position @param position Центр диска.
axis @param axis Оси для вращения вокруг.
size @param size Размер маркера.
cutoffPlane @param cutoffPlane Если true, перетаскивается только фронтальная половина круга. Это полезно, когда у вас много перекрывающихся осей вращения (как в стандартном инструменте "rotate"), чтобы избежать путаницы.
snap @param size Размер маркера.

Returns

Quaternion @return Новую позицию. Если пользователь не выполнил операцию, будет возвращено то же значение, что вы передавали в позицию.

Description

Делает перемещаемый мышкой 3D диск.


Disc Handle on the Scene view.

Важно: Используйте HandleUtility.GetHandleSize если вам нужны маркеры постоянного размера.

See Also: HandleUtility.GetHandleSize.

To use this example, save this script in Assets/Editor:

using UnityEngine;
using UnityEditor;

[CustomEditor( typeof( DiscHandle ) )] public class DiscHandleEditor : Editor { public float cylinderSize = 1;

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

И скрипт, прикрепленный к данному маркеру:

using UnityEngine;

[ExecuteInEditMode] public class DiscHandle : MonoBehaviour { public Quaternion rot = Quaternion.identity;

public void Update( ) { transform.rotation = rot; } }