C#

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

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

GlobalGameJam2019 中野会場に参加してきてゲームを1本リリースしました。

できたもの play.google.com globalgamejam.org 使ったもの Zenject UniRx GGJ2019が終わりました。 お疲れ様です。 GGJ2019が無事終わりました。 成果物はNoxAppとかであそべるんでぜひあそんでください! 今回のチーム 今回は以下のような構成でした プロ…

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>…

GlobalGameJamってイベントに参加してきました。

Born to Beans | Global Game Jam&reg; 遊べ!! 今回のゲームジャムはとてもうまく行ったゲームジャムだったなぁと感じました。 メンバー構成は ・企画1人 ・アート2人 ・エンジニア4人 とまあまあバランスが取れた構成でした。 忘れそうだし覚えていること…

NGUIのScrollViewの中にあるUIGridの下にボタンとか追加したい。

ようはUIScrollViewの最下部に要素を動的に追加・移動したかったんだ。。。 やったこと * UIGridの縦幅を出す * 追加もしくは移動したいものの座標をあわせる。 以上!! 縦幅の出し方。 UIGridの縦幅はUIGrid.cellHeight * UIGridの要素数で出せます。 var …

InvalidOperationException: Operation is not valid due to the current state of the object

Linqを使っている箇所にて表題のエラーが発生した。 List.Max(hoge=> hoge.fuga);みたいなところでおきてたので最初iOSのあるあるかな?と思ったけど違った。 結果だけ言うと Listさんが空配列になっていたのが原因っぽい ぐぐると下記のページがすぐ出てく…

ぷろぐらむ 画面遷移の試作メモ

public class AAA : AaaBase<HogeData>{ public override void Open (HogeData t) { base.Open (t); } public override void Close() { base.Close (); }}public class AaaBase<T>{ public virtual void Open(T t) { } public virtual void Close() { }} これならいけるか</t></hogedata>…

/*コードブロックに言語名を表示*/ 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; /*追加*/ }