Мои Уведомления
Привет, !
Мой Аккаунт Мои Финансы Мои Подписки Мои Настройки Выход
Руководство API скрипты

Handles.PositionHandle

Объявление

public static Vector3 PositionHandle(Vector3 position, Quaternion rotation);

Параметры

position Центр ручки в трехмерном пространстве.
rotation Ориентация ручки в 3D пространстве.

Возвращает

Vector3 Новое значение, измененное взаимодействием пользователя с дескриптором. Если пользователь не перемещал дескриптор, он вернет то же значение, которое вы передали в функцию.

Описание

Создаёт дескриптор позиции.

Эта ручка ведет себя как встроенный инструмент перемещения в Unity.

Ручка положения в представлении «Сцена»

Добавьте следующий скрипт в папку Assets как PositionHandleExample.cs и добавьте компонент PositionHandleExample к объекту в сцене.

using UnityEngine; [ExecuteInEditMode] public class PositionHandleExample : MonoBehaviour { public Vector3 targetPosition { get { return m_TargetPosition; } set { m_TargetPosition = value; } } [SerializeField] private Vector3 m_TargetPosition = new Vector3(1f, 0f, 2f); public virtual void Update() { transform.LookAt(m_TargetPosition); } }

Добавьте следующий скрипт в Assets/Editor как PositionHandleExampleEditor.cs и выберите объект с компонентом PositionHandleExample.

using UnityEditor; using UnityEngine; [CustomEditor(typeof(PositionHandleExample)), CanEditMultipleObjects] public class PositionHandleExampleEditor : Editor { protected virtual void OnSceneGUI() { PositionHandleExample example = (PositionHandleExample)target; EditorGUI.BeginChangeCheck(); Vector3 newTargetPosition = Handles.PositionHandle(example.targetPosition, Quaternion.identity); if (EditorGUI.EndChangeCheck()) { Undo.RecordObject(example, "Change Look At TargetPosition"); example.targetPosition = newTargetPosition; example.Update(); } } }
Вы можете отблагодарить автора, за перевод документации на русский язык. ₽ Спасибо
API скрипты 2021.3