Version: 5.3 (switch to 5.4b)
言語English
  • C#
  • JS

スクリプト言語

好きな言語を選択してください。選択した言語でスクリプトコードが表示されます。

Handles.PositionHandle

フィードバック

ありがとうございます

この度はドキュメントの品質向上のためにご意見・ご要望をお寄せいただき、誠にありがとうございます。頂いた内容をドキュメントチームで確認し、必要に応じて修正を致します。

閉じる

送信に失敗しました

なんらかのエラーが発生したため送信が出来ませんでした。しばらく経ってから<a>もう一度送信</a>してください。ドキュメントの品質向上のために時間を割いて頂き誠にありがとうございます。

閉じる

キャンセル

マニュアルに切り替える
public static function PositionHandle(position: Vector3, rotation: Quaternion): Vector3;
public static Vector3 PositionHandle(Vector3 position, Quaternion rotation);

パラメーター

position 3D 空間でのハンドルの中心
rotation 3D 空間でのハンドルの向き

戻り値

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

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

説明

3D シーンビューの Position ハンドルを作成します。

これは Unityのビルトインにある Move ツールのように動作します。 ハンドルの向きを制御するには、この関数を呼び出す前に Handles.matrix を設定します。


オブジェクトを常に Position ハンドルを向くように作成します。

この例を使用するには、Assets/Editor フォルダーにこのスクリプトを保存します。


        
using UnityEngine;
using UnityEditor;

[CustomEditor( typeof( PositionHandle ) )] public class PositionHandleEditor : Editor { void OnSceneGUI( ) { PositionHandle t = target as PositionHandle;

// Set the colour of the next handle to be drawn: Handles.color = Color.magenta;

EditorGUI.BeginChangeCheck( ); Vector3 lookTarget = Handles.PositionHandle( t.lookTarget, Quaternion.identity );

if( EditorGUI.EndChangeCheck( ) ) { Undo.RecordObject( target, "Changed Look Target" ); t.lookTarget = lookTarget; t.Update( ); } }

}

そして、このスクリプトを LookAt 位置を編集したいオブジェクトに置きます。


        
using UnityEngine;

[ExecuteInEditMode] public class PositionHandle : MonoBehaviour { public Vector3 lookTarget = new Vector3( 0,2,0 );

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