Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Unityで使える汎用的な ハンバーガーメニューの実装 / UniHamburger

Nakaji Kohki
September 22, 2021

Unityで使える汎用的な ハンバーガーメニューの実装 / UniHamburger

2021.09.22開催のGotanda.unity #20 にて使用した発表資料です。
https://meetup.unity3d.jp/jp/events/1325

Twitter: https://twitter.com/nkjzm

Nakaji Kohki

September 22, 2021
Tweet

More Decks by Nakaji Kohki

Other Decks in Technology

Transcript

  1. Nakaji Kohki / なかじ 略歴: CyberAgent → メルカリ R4D XR

    → 現在 ・日本VR学会認定 上級VR技術者 ・専門学校の先生(VRエンジニア専攻) ・Podcast『xR.fm』のパーソナリティ ・エンジニア系勉強会のオーガナイザー Twitter: @nkjzm Unity / VR Engineer
  2. 要素の追加はワンライナー(1/2) • CreateIntItem()メソッドを呼び出しで追加 • IObservableで変更を取得できる ◦ 途中の結果も取れるので便利 ◦ 最後の結果だけ欲しかったら Throttle

    が使える elementController .CreateIntItem("スライダー(int)", 1, min: -10, max: 10) .Subscribe(value => Debug.Log($"ログ出力: {value}")).AddTo(this);
  3. パラメータの保存機能 • Saltとラベル名をキーにしてパラメータの保存ができる ◦ Saltはキャラ毎の設定保存に便利 • 気軽に追加してそこそこの使い勝手を実現 // saltとラベル名からkeyを生成 var

    key = KeyGenerator.CreateKey(salt, label); // 保存された値の取得 currentValue = new IntReactiveProperty(PlayerPrefs.GetInt(key, defaultValue)); // 変更される度に値を保存 currentValue.Subscribe(index => PlayerPrefs.SetInt(key, index)).AddTo(this);
  4. 細かい便利機能 • ラベルの詳細書ける ◦ 名前付き引数で指定 • 呼び出し元から非アクティブにできる→ • パラメータのリセット機能 elementController

    .CreateIntItem("スライダー", 1, description: "こんな感じで説明書けるよ") .Subscribe(value => Debug.Log($"ログ出力: {value}")).AddTo(this);