Version: 5.5
public static Vector3 FreeMoveHandle (Vector3 position, Quaternion rotation, float size, Vector3 snap, Handles.DrawCapFunction capFunc);

パラメーター

position ハンドルの位置
rotation ハンドルの回転
size ハンドルのサイズ
capFunc ハンドルを描画するために使用する関数 (例 Handles.RectangleCap)。
snap スナップするグリッドサイズ

戻り値

Vector3 ユーザーのハンドル操作によって更新された値。ユーザーがハンドルを操作しない場合は、関数に渡した値と同じ値が返されます。

説明

制約のない移動ハンドルを作成します。

これはすべての方向に自由に移動できます。シーンでスナップするためには Cmd キーを、コライダーに対して Raysnap するために Cmd + Shift キーを押したままにします。


Free Move handle in the Scene View.

注意: 画面サイズに対して固定サイズのハンドルを持ちたい場合、HandleUtility.GetHandleSize を使用します。

// Name this script "FreeMoveEditor"
using UnityEngine;
using UnityEditor;

[CustomEditor(typeof(FreeMove))] [CanEditMultipleObjects] public class FreeMoveEditor : Editor { public void OnSceneGUI() { FreeMove t = (target as FreeMove);

EditorGUI.BeginChangeCheck(); Vector3 pos = Handles.FreeMoveHandle(t.lookAtPoint, Quaternion.identity, .5f, new Vector3(.5f, .5f, .5f), Handles.RectangleCap); if (EditorGUI.EndChangeCheck()) { Undo.RecordObject(target, "Free Move LookAt Point"); t.lookAtPoint = pos; t.Update(); } } }

さらに、Handle にスクリプトをアタッチします。

// Name this script "FreeMove"
using UnityEngine;

[ExecuteInEditMode] public class FreeMove : MonoBehaviour { public Vector3 lookAtPoint = Vector3.zero;

public void Update() { transform.LookAt(lookAtPoint); } }