Unity 6.3
0 онлайн 69 гостей 3 в системе
Вход

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