Script Machine と State Machine
Script Machine (スクリプトマシン) は、アプリケーション内 Script Graph (スクリプトグラフ) を使用できるようにするコンポーネントです。Script Graph は Script Machine に添付されない限り使用することができません。
Script Machine はゲームオブジェクト上に存在し、Script Graph を含んだファイルにリンクすることも、埋め込み Script Graph ファイルを含めることもできます。
State Machine (ステートマシン) は Script Machine (スクリプトマシン) と同じですが、State Graph を含んでいる点が異なります。
Script Graph (スクリプトグラフ) と State Graph (ステートグラフ) の違いに関する詳細は グラフ を参照してください。
ゲームオブジェクトに Script Machine コンポーネントや State Machine コンポーネントを追加すると、Variables コンポーネントも自動で追加されます。この Variables コンポーネントは、そのゲームオブジェクトに添付された Script Graph あるいは State Graph 内で定義される Object 変数を持っています。変数に関する詳細は 変数 を参照してください。
ゲームオブジェクトに Script Machine や State Machine を追加してグラフファイルを添付する方法については、Script Machine または State Machine にグラフファイルを添付する を参照してください。
Script Machine と State Machine のソースタイプ
Script Machine と State Machine には、その Source (ソース) に関して、グラフファイル (Graph) と埋め込みファイル (Embed) の 2 つのオプションがあります。
Script Machine と State Machine の Source はいつでも切り替え可能です。Embed から Graph に切り替えると、埋め込みフラフは失われます。Graph から Embed に切り替えた場合、グラフファイルは State Machine あるいは Script Machine とは別のファイルとしてプロジェクト内に存在し続けます。
Note
Visual Scripting の他の機能 (遷移、Super State、Subgraphs など) にも、これらのソースタイプのオプションがあります。
Graph ソースタイプ
通常は、グラフの読み込みを高速化し、アプリケーション全体を管理しやすくするために、Graph ソースタイプを選択してください。グラフファイルに加えた全ての変更は、そのグラフファイルにリンクしている全ての Script Machine および State Machine に適用されます。(そのゲームオブジェクトが同じプレハブを使用していない場合も同様です。)
複数のゲームオブジェクトに同じグラフを使用したい場合は、Graph ソースを使用してください。
Unity では、グラフファイルを作成して埋め込みグラフではなく Graph ソースタイプを使用することをお勧めしています。ただし、状況によっては、埋め込みグラフが適している場合もあります。
Embed ソースタイプ
以下の場合には、Embed ソースタイプの使用を検討してください。
- グラフ内の現在のシーンからゲームオブジェクトを参照する必要があり、プレハブ上でグラフを使用していない場合。
- ランタイム中にアプリケーション内でインスタンス化したいプレハブ上でグラフを使用している場合。
- グラフ内のロジックをアプリケーション内で 1 度しか使用しない場合。
プレハブを使用していない限り、複数のゲームオブジェクトで埋め込みグラフを再使用することはできません。埋め込みグラフは、それが作成された Script Machine あるいは State Machine 上にのみ存在します。つまり、1 つのプレハブの複数のインスタンスにわたってグラフを共有することはできますが、複数のゲームオブジェクトで共有することはできません。プレハブに関する詳細は Unity ユーザーマニュアルのプレハブに関するセクション を参照してください。