UniRx

GGJ2019のメインループの実装の話

前回のお話 enpel.hatenablog.com メインループ 今回は特別複雑な遷移が無かったので最終的に次のようになりました。 async UniTask GameLoop() { mapController.ShowNextEvent(); while (IsAlive) { playerStatusView.HideEffect(); mapController.SetDayCo…

Subscribe内で他のDictionaryをClearしたら変な挙動になった

protected Dictionary<eFilter, List<Item>> ItemMap = new Dictionary<eFilter, List<Item>>(); public ReactiveProperty<List<Item>> ItemList = new ReactiveProperty<List<Item>>(); void Awake() { ItemList.Subscribe(items => { // ItemListが更新されたらItemMapを一度Clearしたい ItemMap.Clear(); if (ItemMap.Con</list<item></list<item></efilter,></efilter,>…

<UniRx>Pairwiseで雑にtoggleするUI試作

public enum State { A, B, } public interface IUI { void Open(); void Clise(); } ReactiveProperty<State> currentState; Dictionary<State, IUI> ui; currentState.Pairwise().Subscribe(x =>{ if (ui.ContainsKey(x.Previous)) ui[x.Previous].Close(); // 前のStateに該</state,></state>…

ReactiveExtensions: UniRx の ReactivePropertyで変更前の値を取る!

neue cc - Reactive Extensionsで前後の値を利用する ↑のUniRx版 var p = new ReactiveProperty<int>(1); p.Zip(p.Skip(1), (x, y) => new Tuple<int, int>(x,y)) .Subscribe(t => Debug.LogWarning(string.Format( "old: {0}, new: {1}", t.Item1, t.Item2))); p.Value = 1</int,></int>…

/*コードブロックに言語名を表示*/ pre.code:before { content: attr(data-lang); display: inline-block; background: #ccc; /*カラーコード変更*/ color: #666; padding: 3px; position: absolute; margin-left: -20px; /*表示位置を調整*/ margin-top: -30px; } pre.code { padding-top: 30px !important; border:2px solid #ccc; /*追加:コード表示部分の枠設定*/ background:#f8f8f8; /*追加:コード表示部分の背景色*/ position:relative; /*追加*/ }