ゲームジャムでUniRxを初めて使った話 [mr]

2019年1月18日

先日、特に告知せず、開催した小さなゲームジャムに参加してきました。
8時間で作る系のやつです。

チームメンバーは
・クライアント(俺)
・クライアント
・デザイナー
のスリーマンセル。

企画はなかなか面白いものになりました。
1対1のよくある格ゲーです。
(デジゲー博に体験版出すかも)
さらに特徴として、操作方法はただ一つのキーだけで完結するようにしています。

もう一人のクライアントの方が、
UniRx強いマンで、自分もUniRx勉強中マンだったこともあり、
UniRxを使おう、という流れになりました。

短いハッカソンということもあり、
単純な部分しか触りませんでしたが、
少し実装部分を紹介します。

全体

 

こんな感じで使いました(これが正しい使い方かどうかはわからないです……)

 

UniRxを使うのに必須ですね。
毎回毎回、UniRx.Ovservableとかやるのは冗長なので、
なにも考えずにusingしましょう。

 

Start関数に入っていきます。
まず、最初に操作に使用するキーを定義しています。
今回はReturnキーを使用。(いわゆるEnterキー、わかりづらい……)

 

この一行で普段Update()で行う処理をStart()とかAwake()とかに書けます
UpdateをObservableとして使用する、という意味です。

 

この一文はLinq使える人なら理解できると思いますが、フィルター文です。

これと同じ役割です。
controllKeyが押された瞬間だけ処理を発生させます。

 

Subscribeつまり購読する箇所です。
今回のUpdateとしてのストリームなので、
Returnキーが押された時にここに書いた処理が実行されます。

 

ここはやりたいことによって変わってくるので、
特にいうことが無いんですが、
まあ、状態によって行動を分岐してる感じです。

とりあえず、UniRxを取り入れた一か所について説明してみました。

気になる点や、いや、これ違うやろ。ってところがありましたら、
気軽にコメントください。
至急、修正いたします。

mr