ダンスゲーを作りたい#11 切替られるボタンをつくる
前回から大きく方向転換し、実質新規作成です。
鬱。
今回は、前回決めた方針に従って、立ち技、フロア技を出すボタンを切り替えられるようにします。
ボタンを置く
構造としては、ボタン全体を包むパネルと、立ち用のボタンセット、フロア用のボタンセットという形にしていきます。
こんな感じでボタンを配置しました。
左右の四つが技が出るボタン、中央下のが立ち→フロアの切り替えボタンです。
同じ形で立ちの方も作成します。
切替えanimationをつける
uGUIも所詮はゲームオブジェクトのようなので、移動はAnimatorで管理できるらしいです。
ということでまずAnimationClipを作りましょう。
Animationウィンドウを開いてボタン全体の親に指定したBTsを選択し、新しいAnimationClipを作成します。
作るAnimationClipは全部で四つ、
・立ち用ボタンセットが見える位置、フロアが見えない位置にある状態
・↑の逆の状態
・立ち用ボタンが下がり、フロア用ボタンが上がってくるアニメーション
・↑の逆
ですね。
こんな画面が出るので、いい感じに設定して終わりです。
四つできました。
ここで、~Inと命名した切替animationはループされると困るので、ループタイムのチェックを外します。
立ち技のことを入りでやる動き的な意味でエントリーって呼ぶ人もいるのでEntryって命名してます。
遷移を設定
新しくAnimatorContolloreを作ってさっきのアニメーションの遷移を設定します。
デフォルトの状態は立ちボタンセットが表示されてる状態なので、デフォルトステイトにBT_Entry
ボタン入力はいつあるかわからないので、Anystateから切り替わりアニメーションのBT_EntryInとBT_FloorInへ遷移し、EntryInの後はフロアが見えてるBT_Entry、FloorInの後はFloorが見えてるBT_Floorに遷移します。
AnyStateから各Inアニメーションへの遷移用にトリガーを設定して、コントローラー設定はおおむね完了です。
ボタンの設定
ボタン入力で遷移するようにさせていきます。
入力用のスクリプトはまとめておきたい気持ちがなぜか働くので、
GameManagerという空オブジェクトを作成し、ここに新規で作ったスクリプトをくっつけます。Input_managerって名前にしときました。
Input_managerでボタン入力を受け取る関数を作り、呼び出されたら対応するAnimatorのトリガーをオンにします。
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Input_manager : MonoBehaviour
{
Animator Bts; //トリガーセット先のAnimatorコンポーネント
void Start(){
Bts= GameObject.Find("BTs").GetComponent<Animator>(); //を取得
}
//ボタン入力で呼び出す関数
public void DropStand_push(string Trigger){
Bts.SetTrigger(Trigger); //Animatorのトリガーをオンにする
}
}
ボタンの方に、押されたらこの関数を呼び出すように設定します。
これで一通り完了なはずです。
動作
こんな感じでアニメーションして切り替わります。
簡素ですけどね。
実機で触ってみても、前ほどしんどさは感じません。
あとは面白くないんじゃないか問題との戦いですね。
とりあえず今日の目的は達成したので終了です。
お疲れさまでした。
この記事が気に入ったらサポートをしてみませんか?