Unity開発・キーボードの入力処理を実装するならばUniRxを使うと幸せになれる

親指シフトの練習をするソフトをUnityで作成してしますが、キーボードから入力する処理をどのように実装してよいか悩みました。

結論から言うと、キーボードの入力はUniRxを使うと5行ほどのコードで楽に実装ができます。

UniRxを使わない場合は、Update関数に「KeyCode(KeyCode.A)」というように1フレームごとに入力されたキーを監視する方法を使うが、フラグだらけのソースコードになってしまうだろう。

UniRxとは?

UniRxは非同期処理向けのライブラリーです。ある値を監視して実行するような処理を実装するとき便利です。

例えば、3Dのゲームであれば、あるキャラがジャンプして地面に着地(着地したかの監視を毎フレームごとに必要)したときに何かしらのエフェクトを出したいような処理を実装するときに効果的です。

実際の実装例

UniRxを使ったキーボードの入力を受け取る方法を解説します。

やっていることは1フレームごとにキー入力があったかどうか監視して、入力があれば入力されたキーを出力します。

「using UniRx;」を宣言します。

その上で以下のようなコードを書きます。

//キーボードからの入力を取得する
var keyStream = Observable.EveryUpdate()
Select(_ => Input.inputString) 
Where(xs => Input.anyKeyDown)
Subscribe(xs=> Debug.Log(xs));

キーを入力すると、Subscribeのところで入力した文字を受け取ることができます。

UniRxは、使い慣れるまで10時間ほどの時間がかかりますが、慣れてくると、いままで面倒だったところが楽になるので勉強しておいて損はないでしょう!

求人数からのエンジニアの市場価値

各求人サイトの求人数から、現在のエンジニアの市場価値がわかります。

評判も見えるPGスクール検索・比較表

どのプログラミングスクールがいいんだろう?
そんな疑問をお持ちの方に、評判も見えるプログラミングスクール検索・一括比較サービスをリリースしました。

条件を指定することにより、気になるプログラミングスクールを一発で比較できます。
きっと、条件にあったスクールが見つかるかと思います!
詳細は、以下の画像をクリック!

プログラミングスクール比較・検索のペン太ブル
スポンサーリンク
スポンサー




スポンサー




シェアする

  • このエントリーをはてなブックマークに追加

フォローする

スポンサーリンク
スポンサー