まずは最初に、
姿勢変更ゲージが満タンになったときだけ姿勢変更ボタンを押せるように制御する処理について考えます。
ゲームの開始と同時にゲージは自動的に溜まり始めるように実装できていますので、必要なのはボタンの制御です。
・チャージ中(ゲージが溜まっている間)は、ボタンを押せない状態にする
・チャージが完了(ゲージが満タンになったとき)は、ボタンを押せる状態にする
ボタンの状態は、Button コンポーネントが持っている interactable プロパティを利用して制御します。
このスイッチがオンの間はボタンが押せる状態、オフの間はボタンが押せない状態を切り替えることができる機能です。
大切なのは、このボタンの切り替え制御処理をどの部分に組み込んだらいいのか、そのロジックを考えることです。
どういう状態になったら、この処理を行えばいいのか、上記の日本語をプログラムに置き換えて考えてみてください。
<実行動画 ゲージが溜まっている間はボタンが押せない。満タンになると押せる>
https://gyazo.com/3ac0d206e162c4d41964be9434f66370
この処理が無事に実装できたら、あと2つ、制御が必要な処理があります。
1つは、
ボタンを押せるようになったとき、ボタンを押したら、ゲージが減少している間は、ボタンを押せる状態のままにしておくことです。
つまり、チャージのゲージが減少している間は、もう一度だけボタンを押せるようにすることで直滑降の状態に戻すことができるようにします。
当然、その場合にはゲージが満タンではありませんから、またボタンは押せない状態に戻す必要があります。
<実装動画 伏せ状態でゲージが減少している間は、1度だけボタンを押せる。押したら、チャージが終わっていないので、またボタンを押せない状態に戻す>
https://gyazo.com/1b567d8079c76e63e10c1bea2da10c7f
もう1つは、
ボタンを押してゲージが減少している間にボタンを押さなかった場合、ゲージが 0 になったら
強制的にキャラの姿勢を戻して、ボタンを押せない状態に戻すように制御します。
<実装動画 伏せの状態のままゲージがなくなったら強制的に直滑降の状態とボタンを押せない状態に戻す>
https://gyazo.com/d38da6c1d06b92c6f6734bd703000f57
これがすべて備わって、ボタンとゲージの連動処理が完成します。
このロジックを、順番に1つずつ考えてみて、ロジックを実装してください。
ヒントとしましては、チャージが完了しているか、していないかを管理するための変数を1つ用意し、そちらを活用するといいと思います。
ゲージが満タンになったら、この変数を操作し、ゲージが満タンではなくなった場合にも、この変数を操作します。
そうやって「現在のチャージの状態」という情報を新しく設定することによって、実装しやすくなります。