position | ハンドルの位置 |
rotation | ハンドルの回転。これに沿ってスペースを定めます。 |
size | ハンドルのサイズ |
capFunc | 例えば、ハンドルを描画するために使用する関数 Handles.RectangleCap 注意: 画面サイズに対して固定サイズのハンドルを持ちたい場合、 HandleUtility.GetHandleSize を使用します。 |
snap | スナップするグリッドサイズ |
Vector3 ユーザーのハンドル操作によって更新された値。ユーザーがハンドルを操作しない場合は、関数に渡した値と同じ値が返されます。
制約のない移動ハンドルを作成します。
これはすべての方向に自由に移動できます。シーンでスナップするためには Cmd キーを、コライダーに対して Raysnap するために Cmd + Shift キーを押したままにします。
" シーンビューの Free Move ハンドル "
// 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); } }