Handles.ScaleHandle
Declaration
public static Vector3 ScaleHandle(Vector3 scale, Vector3 position, Quaternion rotation, float size);Параметры
| Параметр | Описание |
|---|---|
| шкала | Масштаб для модификации. |
| должность | Положение ручки. |
| ротация | Вращение ручки. |
| размер | Позволяет изменить размер ручки на экране. |
Возвращаемое значение
Vector3 Новое значение, изменённое взаимодействием пользователя с handle. Если пользователь не переместил handle, то оно возвратит то же значение, которое вы передали функции.
Описание
Создайте Scene манипулятор масштаба вида.
Это будет вести себя как встроенный инструмент масштабирования
Примечание: Используйте HandleUtility.GetHandleSize там, где вы хотите иметь постоянные ручки размера экрана.
Ручка масштабирования, которая появится, когда вы выберете GameObject.
// Name this script "ScaleAtPointEditor" using UnityEngine; using UnityEditor;
[CustomEditor(typeof(ScaleAtPoint))] [CanEditMultipleObjects] public class ScaleAtPointEditor : Editor { public void OnSceneGUI() { ScaleAtPoint t = (target as ScaleAtPoint);
EditorGUI.BeginChangeCheck(); Vector3 scale = Handles.ScaleHandle(t.scale, Vector3.zero, Quaternion.identity, 1); if (EditorGUI.EndChangeCheck()) { Undo.RecordObject(target, "Scaled ScaleAt Point"); t.scale = scale; t.Update(); } } }
И скрипт, приложенный к этому GameObject:
// Name this script "ScaleAtPoint" using UnityEngine; [ExecuteInEditMode] public class ScaleAtPoint : MonoBehaviour { public Vector3 scale = Vector3.one; public void Update() { transform.localScale = scale; } }