見出し画像

ダンスゲーを作りたい#11 切替られるボタンをつくる

前回から大きく方向転換し、実質新規作成です。

鬱。

今回は、前回決めた方針に従って、立ち技、フロア技を出すボタンを切り替えられるようにします。

ボタンを置く

構造としては、ボタン全体を包むパネルと、立ち用のボタンセット、フロア用のボタンセットという形にしていきます。

画像2

こんな感じでボタンを配置しました。

画像1

左右の四つが技が出るボタン、中央下のが立ち→フロアの切り替えボタンです。

同じ形で立ちの方も作成します。

切替えanimationをつける

uGUIも所詮はゲームオブジェクトのようなので、移動はAnimatorで管理できるらしいです。

ということでまずAnimationClipを作りましょう。

Animationウィンドウを開いてボタン全体の親に指定したBTsを選択し、新しいAnimationClipを作成します。

作るAnimationClipは全部で四つ、

・立ち用ボタンセットが見える位置、フロアが見えない位置にある状態
・↑の逆の状態
・立ち用ボタンが下がり、フロア用ボタンが上がってくるアニメーション
・↑の逆

ですね。

こんな画面が出るので、いい感じに設定して終わりです。

画像3

画像4

四つできました。

ここで、~Inと命名した切替animationはループされると困るので、ループタイムのチェックを外します。

画像9

立ち技のことを入りでやる動き的な意味でエントリーって呼ぶ人もいるのでEntryって命名してます。

遷移を設定

新しくAnimatorContolloreを作ってさっきのアニメーションの遷移を設定します。

デフォルトの状態は立ちボタンセットが表示されてる状態なので、デフォルトステイトにBT_Entry

ボタン入力はいつあるかわからないので、Anystateから切り替わりアニメーションのBT_EntryInとBT_FloorInへ遷移し、EntryInの後はフロアが見えてるBT_Entry、FloorInの後はFloorが見えてるBT_Floorに遷移します。

画像5

AnyStateから各Inアニメーションへの遷移用にトリガーを設定して、コントローラー設定はおおむね完了です。

画像6

画像7

画像8

ボタンの設定

ボタン入力で遷移するようにさせていきます。

入力用のスクリプトはまとめておきたい気持ちがなぜか働くので、

GameManagerという空オブジェクトを作成し、ここに新規で作ったスクリプトをくっつけます。Input_managerって名前にしときました。

画像10

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のトリガーをオンにする
   }
}

ボタンの方に、押されたらこの関数を呼び出すように設定します。

画像12

画像11

これで一通り完了なはずです。

動作

画像13

こんな感じでアニメーションして切り替わります。

簡素ですけどね。

実機で触ってみても、前ほどしんどさは感じません。

あとは面白くないんじゃないか問題との戦いですね。

とりあえず今日の目的は達成したので終了です。

お疲れさまでした。

この記事が気に入ったらサポートをしてみませんか?