アプリを作ろうとした時に

そうなんですよ。

アプリを作ろう!

よし今回はこんな感じのゲームだぞ!

それにはこんな機能が必要だぞ!

今までそんな機能実装してなかったなぁ

よし実装しよーっと!

というやつです。
今回は前回の「パネルさがし」になかった、
フリックとかスライドみたいなものや長押しとか、
そういうなんかタップ関連のいろんな機能が必要になりそうなんですよね。

で、なんかそういうのやってくれるモジュールとかも探してみたんですが、
いまいちしっくりくるものがなくてですね。
なんか有料でアセットストアとかにあるみたいだけど、なんかシャクなので。

で、僕はプログラマなので(?)、
「なけりゃ作ってやりゃいーんだよ!!」となるのは至極当然のことであります。

というわけで、パネルの時に作った
TouchManagerなるクラスがあるのですが、
それを結構拡張してやろう!というのが今日の作業になってしまいました。

以前のパネルさがしの時のTouchManager
・Input.touchSupportedで、タッチに対応してるかどうかみて、
 UnityEditor上ではGetMouseButtonとかを使い、
 スマホではGetTouchでTouchオブジェクトを取得、それを使用
・その上で、 
 ・isPress()
 ・isHold()
 ・isRelease()
 ・getTouchPosition()
 この4つの関数を呼び出して使う…

とかまぁそんな超絶シンプルな塩梅だったのですが。

これを
enumかなんかで状態を作る
押した瞬間、触ってる、触って動いてる、離した、タップした、長押しした、フリックした…
くらいかな?
こいつらをビットフラグかなんかで管理。

で、まだ考え中だけど、
updateで毎フレーム状態を更新。
で、isTouch(TOUCH_STATE)みたいな関数に状態をつっこんで、
TOUCH_STATEの状態のビットが立ってるならTrueを返す…みたいな感じにしようかなと。

で、
位置もgetTouchPosition()だけだと現在の位置しか取れないので、
・触り始めの位置
・前のフレームからの差分位置
なんかも併せて取得できるようにすれば、
一応今回のアプリで作ろうとしている部分の実装はできるのでは無いかと思っています。

余裕があればピンチインとかもできるようにしようかと考えましたが、
そもそもスマホアプリなんて片手で操作できるのが一番いいと思っているので、
あくまで一本指にしたいと考えています。

できたらgithubとかにぶち込んでみようかなw
これでおれも意識高いプログラマデビューだ!

いやまぁそんなのもうゴロゴロ置いてあるんでしょうけど。
車輪の再発明?趣味でやるぶんには一向に構わないでしょう。

まぁそんなわけで、今日のアプリの作成という部分では進捗は無いですが、
土台作りを着々と進めつつ、昨日も今日もずっとモンハンやっておりましたとさ。

今日はなんか文字ばっかり淡々と打ってしまう、見づらいし
面白みも無いブログになってしまいましたがおやすみなさい。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です