Manuals
Manuals




This translation is community contributed and may not be up to date. We only maintain the English version of the documentation. Read this manual in English

GUI テンプレートノード

GUI テンプレートノード(GUI template node)は、共有テンプレートや「プレハブ(prefab)」を基に、再利用可能な GUI コンポーネント(GUI component)を作成できる強力な仕組みです。このマニュアルでは、この機能と使い方について説明します。

GUI テンプレート(GUI template)は、別の GUI シーン(GUI scene)内にノードごとにインスタンス化される GUI シーンです。元のテンプレートノードのプロパティ値は、どれでも上書きできます。

テンプレートの作成

GUI テンプレートは通常の GUI シーンなので、ほかの GUI シーンと同じ方法で作成します。Assets ペイン内の作成先を 右クリック し、New... ▸ Gui を選択します。

テンプレートの作成

テンプレートを作成して保存します。インスタンス(instance)のノードは原点を基準に配置されるため、テンプレートは位置 0, 0, 0 に作成することをお勧めします。

テンプレートからのインスタンスの作成

インスタンスを基に、任意の数のインスタンスを作成できます。テンプレートを配置する GUI シーンを作成するか開き、OutlineNodes セクションを 右クリック して、Add ▸ Template を選択します。

インスタンスの作成

Template プロパティに、テンプレートの GUI シーンファイルを設定します。

テンプレートのインスタンスは任意の数だけ追加できます。また、各インスタンスでは各ノードのプロパティを上書きし、インスタンスのノードの位置、色、サイズ、テクスチャなどを変更できます。

インスタンス

変更したプロパティは、エディターで青色で表示されます。プロパティの横にあるリセットボタンを押すと、テンプレートの値に戻ります。

プロパティ

プロパティが上書きされたノードも、Outline で青色で表示されます。

Outline ビュー

テンプレートのインスタンスは、Outline ビューに折りたたみ可能な項目として表示されます。ただし、この項目は ノードではない ことに注意してください。テンプレートのインスタンス自体は実行時にも存在しませんが、インスタンスに含まれるすべてのノードは存在します。

テンプレートのインスタンスに含まれるノードの名前には、Id の前にプレフィックスとスラッシュ("/")が自動的に付加されます。プレフィックスは、テンプレートのインスタンスに設定された Id です。

実行時のテンプレートの変更

テンプレートの仕組みを通じて追加されたノードをスクリプトから操作したり、その情報を取得したりする場合は、インスタンスのノードの命名だけを考慮し、ノード名のプレフィックスとしてテンプレートのインスタンスの Id を含める必要があります。

if gui.pick_node(gui.get_node("button_1/button"), x, y) then
    -- Do something...
end

テンプレートのインスタンス自体に対応するノードはありません。インスタンスにルートノードが必要な場合は、テンプレートに追加してください。

テンプレートの GUI シーンにスクリプトが関連付けられていても、そのスクリプトはインスタンスのノードツリーには含まれません。各 GUI シーンに割り当てられるスクリプトは1つだけなので、スクリプトのロジックは、テンプレートをインスタンス化した先の GUI シーンに置く必要があります。