Version: 5.3 (switch to 5.4b)
ЯзыкEnglish
  • C#
  • JS

Язык программирования

Выберите подходящий для вас язык программирования. Все примеры кода будут представлены на выбранном языке.

Handles.FreeRotateHandle

Предложить изменения

Успех!

Благодарим вас за то, что вы помогаете нам улучшить качество документации по Unity. Однако, мы не можем принять любой перевод. Мы проверяем каждый предложенный вами вариант перевода и принимаем его только если он соответствует оригиналу.

Закрыть

Ошибка внесения изменений

По определённым причинам предложенный вами перевод не может быть принят. Пожалуйста <a>попробуйте снова</a> через пару минут. И выражаем вам свою благодарность за то, что вы уделяете время, чтобы улучшить документацию по Unity.

Закрыть

Отменить

Руководство
public static function FreeRotateHandle(rotation: Quaternion, position: Vector3, size: float): Quaternion;
public static Quaternion FreeRotateHandle(Quaternion rotation, Vector3 position, float size);

Параметры

rotation @param rotation ориентация маркера.
position @param position Центр маркера в 3D пространстве.
size @param size Размер маркера.

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

Возврат значений

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

Описание

Делает непостоянно вращающийся маркер.

The handle can rotate freely on all axes. The rotation gizmo has no visible axes and is simply a circle in the scene view. Users can click and drag from within the circle to provide input rotation to your editor script.


"Свободно вращаемый маркер в окне Scene".


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

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

EditorGUI.BeginChangeCheck(); Quaternion rot = Handles.FreeRotateHandle(t.rot, Vector3.zero,2); if (EditorGUI.EndChangeCheck()) { Undo.RecordObject(target, "Free Rotate"); t.rot = rot; t.Update(); } } }

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

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