【Unity】ボタンを押している間、ゲージを減少をさせる
以下の記事で紹介しているゲームで、ボタンを押している間、時間をスローにする処理を実装しています。ただ、無限に時間操作ができてしまうと面白くないので、ボタンを押している間ゲージを減少させて、0になったら操作できないようにしました。
(時間操作の記事ができたらリンク貼る)
使用したツール / 環境
- Unity 2018.13f1
どのように実現しているか
Unityサイド
まずはUIを配置します。
※上の"AreaClockGuage"はCanvasです。
※ゲージが2つあるのは左手・右手を変更した時用です。
AreaClockGuage(Canvas) の配置


Pivotの値は0.5(デフォルト) → 1に変更しています。左側の画像を見てもらえるとわかるように、左側に軸が来ています。
Panel の配置


これで、Unity側の準備は完了しました。
Scriptサイド
Unity側の準備は完了と書いたのですが、実際はもう一つオブジェクトを作成してスクリプトをアタッチする必要があります。今回は、ゲージを減らす処理を書いたスクリプトとそれを呼び出すスクリプトです。
呼び出される側の処理
こっちの処理ではpublicで使用するゲージを定義しているので、InspectorからCanvasを指定してください。
呼び出す側の処理
if (OVRInput.Get(OVRInput.Button.PrimaryIndexTrigger) && GetComponent<GuageDecreasing>().restGuage >= 0) { GetComponent<GuageDecreasing>().Decreasing(); }
別のスクリプトから、上記コードを実行します。Update内で実行してください。ボタンを押しているかつゲージの残量があるときはゲージが減少していきます。
スクリプトは全体の中から切り貼りしたので、おかしな部分があるかもしれないですが、まとめてしまうと、ゲージを用意して、Decreasingメソッドをボタンを押している間実行しておけば問題ありません。