スクリプタブルタイルの例
GridBrushBase

スクリプタブル ブラシ

スクリプタブルブラシの作成

GridBrushBase (あるいは GridBrush などの、 GridBrushBase のサブクラスで使用可能なもののどれか)から継承して新規クラスを 1 つ作成してください。この新規 Brush クラスのために必要なメソッドを全てオーバーライドしてください。通常は以下のメソッドをオーバーライドします。

  • Paint ― ブラシが、ターゲットのグリッド上にアイテムを追加します。
  • Erase ― ブラシが、ターゲットのグリッドからアイテムを削除します。
  • FloodFill ― ブラシが、ターゲットのグリッドをアイテムで塗りつぶします。
  • Rotate ― ブラシ内に設定されたアイテムを回転させます。
  • Flip ― ブラシ内に設定されたアイテムをフリップします。

ScriptableObject.CreateInstance<(Your Brush Class>() を使用して、新しく作成したクラスのインスタンスを作成してください。 AssetDatabase.CreateAsset() を呼び出せば、この新しいインスタンスをエディター内でアセットに変換でき、繰り返し使用することができるようになります。

ブラシ用にカスタムエディターを作成することもできます。これは、スクリプタブル オブジェクト用のカスタムエディターと同じように機能します。カスタムエディターを作成する場合にオーバーライドするメソッドの主要なものは以下の通りです。

  • OnPaintInspectorGUI をオーバーライドすると、ブラシ選択時に、ペイント時の追加挙動を提供するインスペクターが Palette 上に表示されます。
  • OnPaintSceneGUI をオーバーライドすると、 SceneView 上でのペイント時に追加挙動が提供されます。
  • validTargets をオーバーライドすると、ブラシがインタラクトできるターゲットのリストをカスタム作成できます。このターゲットリストは Palette ウィンドウ上にドロップダウンメニューの形で表示されます。

作成されたスクリプタブルブラシは Palette ウィンドウの Brushes Dropdown のリストに表示されます。デフォルトでは、スクリプタブルブラシのスクリプトのインスタンスが 1 つインスタンス化され、プロジェクトの Library フォルダー内に保存されます。ブラシのプロパティに加えられた変更はそのインスタンス内に保存されます。異なるプロパティを持つ複数のブラシが必要な場合は、プロジェクト内にアセットとしてブラシをインスタンス化できます。こうしたブラシアセットは、ブラシドロップダウンメニューのリストに個々に表示されます。

Scriptable Brush クラスには CustomGridBrush 属性を追加することができます。これにより、Palette ウィンドウ内でのブラシ挙動の設定が可能になります。 CustomGridBrush 属性には以下のプロパティがあります。

  • HideAssetInstances - これを true に設定すると、作成されたブラシアセットの全てのコピーが Palette ウィンドウ内で非表示になります。 Palette ウィンドウの Brush ドロップダウンメニューにデフォルトのインスタンスのみを表示したい場合に設定してください。
  • HideDefaultInstances - これを true に設定すると、ブラシアセットのデフォルトのインスタンスが Palette ウィンドウ内で非表示になります。 Palette ウィンドウの Brush ドロップダウンメニューに、作成したアセットのみを表示したい場合に設定してください。
  • DefaultBrush -これを true に設定すると、ブラシのデフォルトのインスタンスがプロジェクトのデフォルトブラシに設定されます。これを行うと、プロジェクト起動時に毎回このブラシのインスタンスがデフォルト選択のブラシとして設定されます。デフォルト ブラシに設定するスクリプタブルブラシは 1 つのみにしてください。
  • DefaultName - ブラシのクラス名の代わりに、ここに設定した名前が Brush ドロップダウンメニューにブラシ名として表示されます。

新しいブラシアセットを保存するために、プロジェクトを忘れずに保存してください。


スクリプタブルタイルの例
GridBrushBase