scale | 変更するスケール値 |
position | ハンドルの位置 |
rotation | ハンドルの回転 |
size | スクリーン上でハンドルのサイズをスケーリングするサイズ |
Vector3 ユーザーのハンドル操作によって更新された値。ユーザーがハンドルを操作しない場合は、関数に渡した値と同じ値が返されます。
シーンビューの Scale ハンドルを作成します。
ビルトインのスケールツールのように動作します。
Scale handle that will appear whenever you select the GameObject.
注意: 画面サイズに対して固定サイズのハンドルを持ちたい場合、HandleUtility.GetHandleSize を使用します。
// 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(); } } }
このスクリプトをゲームオブジェクトに置きます。
// Name this script "ScaleAtPoint" using UnityEngine;
[ExecuteInEditMode] public class ScaleAtPoint : MonoBehaviour { public Vector3 scale = Vector3.one; public void Update() { transform.localScale = scale; } }