Skip to content

Latest commit

 

History

History
81 lines (58 loc) · 3.49 KB

public-properties-and-fields.md

File metadata and controls

81 lines (58 loc) · 3.49 KB

パブリック プロパティとフィールド

初級 プログラマー

スクリプトでパブリック プロパティまたはパブリック フィールドを宣言すると、そのプロパティは Game Studio 内でスクリプト コンポーネント プロパティからアクセスできるようになります。

Property in Game Studio

同じスクリプトを複数のエンティティにアタッチし、エンティティごとに異なるプロパティ値を設定できます。

Note

パブリック プロパティまたはフィールドを Game Studio で使用するには、シリアル化可能である必要があります。

パブリック プロパティまたはフィールドを追加する

次のスクリプトにはパブリック プロパティ (DelayTimeOut) があります。

public class SampleSyncScript : StartupScript
{
	// このパブリック メンバーは Game Studio に表示される
	public float DelayTimeOut { get; set; }
}

DelayTimeOut プロパティはスクリプト コンポーネントのプロパティに表示されます。

Public property appears in the property grid

Note

原則として、Game Studio でプロパティまたはフィールドを表示したい場合、ゲッターおよびセッターは可能な限り何も行わないようにする必要があります。たとえば、メソッドを呼び出したり、Stride のランタイム API にアクセスしたりしないようにする必要があります。

たとえば、以下のコードは、実行時にのみ使用できる Entity.Components にアクセスしようとしているため、問題になります。

public class SampleSyncScript : StartupScript
{
  private float delayTimeOut;
  // このパブリック メンバーは Game Studio に表示される
  public float DelayTimeOut
  {
  	get { return delayTimeOut; }
  	set
  	{
  		delayTimeOut = value;
  		Entity.Components.Add(new SkyboxComponent());
  	}
  }
}

このようなコードをプロパティまたはフィールドに組み込む場合は、Game Studio がそれを表示しないように非表示にします (後述を参照)。

プロパティ グリッドでプロパティまたはフィールドを非表示にする

プロパティ グリッドにプロパティを表示したくない場合は、次の方法でできます。

  • メンバーを内部またはプライベートとして宣言します
  • または、DataMemberIgnore 属性を次のように使用します。
	// このパブリック プロパティは Game Studio では使用できない
	[DataMemberIgnore]
	public float DelayTimeOut { get; set; }

プロパティが表示されなくなります。

パブリック プロパティは [DataMemberIgnore] で非表示になっている

関連項目