レイヤー作成

レイヤー(Window)作成

まず始めにWindow(レイヤー)を定義します。

レイヤーの生成時にオブジェクトを引数で渡すことができます。
例えばキャラクターを参照するようなUIを作る場合にはCharaをプロパティに含めます。
アイテムであればThingをプロパティに含めます。

public class CustomLayer : YKLayer<Thing>
{
    public override void OnLayout()
    {
        CreateTab<CustomTab>("タブ名"._("Tab Name"), "タブに割り振るID");
        // 複数のタブが必要な場合は続けて宣言
        CreateTab<Custom2Tab>("タブ名2"._("Tab Name2"), "タブに割り振るID2");
    }
}

タブの宣言もレイヤーと似た構成のクラスとなります。

public class CustomTab : YKLayout<Thing>
{
    public override void OnLayout()
    {
        // UIの宣言
        // レイヤー生成時に渡されるオブジェクトは this.Layer.Data で取得できます。
        Thing thing = Layer.Data;
    }
}

YKLayoutを継承したクラスでUIを構築する処理を記述します。OnLayoutはその処理を記述するメソッドです。

定義したレイヤーは次のコードで呼び出すことができます。

YK.CreateLayer<CustomLayer>(thing);

オブジェクトの参照が必要なければ次のような呼び出しも可能です。
この場合レイヤーの宣言時は object を割り当ててください。

public class CustomLayer : YKLayer<object> {}

YK.CreateLayer<CustomLayer>();

ここまでで定義された内容を箇条書きでまとめると次の通りです。

  1. CustomLayerと言うレイヤーを宣言。
  2. CustomTabと言うタブを宣言。
  3. YK.CreateLayerメソッドで定義したレイヤーの生成を命令。
  4. サイズ640x480のウィンドウが生成される。

続いてUI要素の作成セクションでウィンドウに配置するパーツについて学んでみましょう。