🛩️ UIWidgetsでページ遷移の時に引数を渡す

2021-01-07 /Development #Unity
この記事は最終更新日から2年以上経過しています。

今ちょうどお仕事で UIWidgets を触っています。

ページ移動時に引数を渡すみたいな事がしたくて、 Flutterだと こんな感じ で動かすのですがUnityだと書き方が違っていて混乱したのでメモ。

まずは引数として渡す値のクラスを定義します。 必要な値の設定だけじゃなくて、 staticCreate メソッドを作っておくと便利。

コピーしました
[System.Serializable]
public class ScreenArguments
{
    public int id = -1;

    public static ScreenArguments Create(int id)
    {
        ScreenArguments obj = new ScreenArguments();
        obj.id = id;
        return obj;
    }
}

ページ遷移の時にはこんな感じで渡します。

コピーしました
Navigator.of(context).pushNamed("DetailPage", arguments: ScreenArguments.Create(id: 100));

遷移先の画面では ModalRoute 経由で値を受け取る事ができるようになります。

コピーしました
public override Widget build(BuildContext context)
{
    ScreenArguments arg = ModalRoute.of(context).settings.arguments as ScreenArguments;
    int currentId = -1;
    if (arg != null)
    {
        currentId = arg.id;
    }
    Debug.Log(currentId);

    return new Scaffold(...);
}

UIWidgets はこの度初めて触ったのですが、デザインを入れるのにRectTransformと格闘しなくてもよくなるので、作業が楽になりそうです。

Comment
comments powered by Disqus
Profile

石原 悠 / Yu Ishihara

デザインとプログラミングと編み物とヨーグルトが好きです。