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

スクリプト言語

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

PropertyScope

class in UnityEditor

フィードバック

ありがとうございます

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

閉じる

送信に失敗しました

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

閉じる

キャンセル

マニュアルに切り替える

説明

SerializedPropertyを GUI で管理しやすくするようにするためのプロパティーのラッパーである GUI グループを作成します

ほとんどのEditorGUIEditorGUILayoutの GUI コントロールはすでに SerializedProperty で動作するオーバーロードを持ち合わせています。 ですが、以下の例のように SerializedProperty でハンドリングできないものに関しては BeginProperty と EndProperty でラップしてその内側に処理を書くことで GUI を制御することが可能です。 独自の GUI コントロールを作成する場合にも使用することができます。

複数のオブジェクトを編集するとき、プロパティーの値が異なる場合、BeginProperty と EndProperty はデフォルトのラベルに、プレハブに Bold のフォントを上書き、右クリックしてプレハブにメニューに戻すことや showMixedValue を True に設定するなどの処理を自動的に行います。


        
class ExampleClass {
  	// A slider function that takes a SerializedProperty
	void Slider (Rect position, SerializedProperty prop, float leftValue, float rightValue, GUIContent label) {
		using (var scope = new EditorGUI.PropertyScope (position, label, prop)) {
			label = scope.content;
			EditorGUI.BeginChangeCheck ();
			var newValue = EditorGUI.Slider (position, label, prop.floatValue, leftValue, rightValue);
			// Only assign the value back if it was actually changed by the user.
			// Otherwise a single value will be assigned to all objects when multi-object editing,
			// even when the user didn't touch the control.
			if (EditorGUI.EndChangeCheck ())
				prop.floatValue = newValue;
		}
	}
}

See Also: BeginProperty.

変数

content制御に使用する実際のラベル

コンストラクタ

EditorGUI.PropertyScope新しい PropertyScope を作成し、対応するプロパティーを開始します。