Объявление
public static Vector3 ScaleHandle(Vector3 scale, Vector3 position, Quaternion rotation, float size);Параметры
scale | Масштаб для изменения. |
position | Положение ручки. |
rotation | Вращение ручки. |
size | Позволяет масштабировать размер ручки на экране. |
Возвращает
Vector3 Новое значение, измененное взаимодействием пользователя с дескриптором. Если пользователь не перемещал дескриптор, он вернет то же значение, которое вы передали в функцию.
Описание
Создаёт дескриптор масштаба представления сцены.
Это будет работать как встроенный инструмент масштабирования
Примечание. Используйте HandleUtility.GetHandleSize, если вы хотите иметь дескрипторы постоянного размера экрана.

// Назовите этот скрипт "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();
}
}
}
И скрипт, прикрепленный к этому игровому объекту:
// Name this script "ScaleAtPoint"
using UnityEngine;
[ExecuteInEditMode]
public class ScaleAtPoint : MonoBehaviour
{
public Vector3 scale = Vector3.one;
public void Update()
{
transform.localScale = scale;
}
}