ゲーム開発
Unity
UnrealEngine
C++
Blender
Houdini
ゲーム数学
ゲームAI
グラフィックス
サウンド
アニメーション
GBDK
制作日記
IT関連
ツール開発
フロントエンド関連
サーバサイド関連
WordPress関連
ソフトウェア設計
おすすめ技術書
音楽
DTM
楽器・機材
ピアノ
ラーメン日記
四コマ漫画
その他
おすすめアイテム
おもしろコラム
  • ゲーム開発
    • Unity
    • UnrealEngine
    • C++
    • Blender
    • Houdini
    • ゲーム数学
    • ゲームAI
    • グラフィックス
    • サウンド
    • アニメーション
    • GBDK
    • 制作日記
  • IT関連
    • ツール開発
    • フロントエンド関連
    • サーバサイド関連
    • WordPress関連
    • ソフトウェア設計
    • おすすめ技術書
  • 音楽
    • DTM
    • 楽器・機材
    • ピアノ
  • ラーメン日記
    • 四コマ漫画
      • その他
        • おすすめアイテム
        • おもしろコラム
      1. ホーム
      2. 20210428_02

      【Unity】タブバーと画面切替アニメーションを実装する【uGUI】

      UnityUI
      2021-04-30

      マイケル
      マイケル
      みなさんこんにちは!
      マイケルです!
      エレキベア
      エレキベア
      クマ〜〜〜〜
      マイケル
      マイケル
      今回は画面の実装です!
      以下のような・・・
      マイケル
      マイケル
      画面切替できるタブバー を作っていこうと思います!
      エレキベア
      エレキベア
      よくあるやつクマ〜〜〜

      参考書籍

      マイケル
      マイケル
      画面構築するにあたり参考にした書籍はこちらです!

      uGUIではじめるUnity UIデザインの教科書

      マイケル
      マイケル
      今回紹介するタブバーだけでなく
      UI構築に必要な機能が幅広く盛り込まれているので、
      一冊持っていて損はないと思います!
      エレキベア
      エレキベア
      クマも所有しているクマ〜〜〜

      タブバーと画面切替の実装

      マイケル
      マイケル
      それでは早速作っていきましょう!

      TabBarオブジェクトの作成

      マイケル
      マイケル
      まずはタブバー全体のオブジェクトを作りましょう!


      ・CanvasとTabBar用のImageオブジェクトを追加する。


      ・TabBarオブジェクトに下記コンポーネントをアタッチする。
      Toggle Group:Toggleを操作するコンポーネント
      Horizontal Layout Group:横方向に整列するコンポーネント(Chilid Force ExpandのチェックON)

      マイケル
      マイケル
      これで子要素を自動で整列してくれるようになります!
      エレキベア
      エレキベア
      便利クマ〜〜〜

      Toggleオブジェクトの作成

      マイケル
      マイケル
      そして次はタブの実装!
      こちらはToggleコンポーネント を使用します!


      ・TabBarの子オブジェクトとしてToggleコンポーネントを追加し、
      BackgroundとCheckmarkのSpriteを設定する。
      ※それぞれの大きさは調整する。


      ↑Background(チェックOFF時の画像)

      ↑Checkmark(チェックON時の画像)

      ↑オンオフ切り替え時に画像が変わるようになる
      エレキベア
      エレキベア
      オンオフで自動で画像が切り替わるクマね
      マイケル
      マイケル
      あとは同様に必要なタブの数だけ作成しましょう!


      ・Toggleの数だけ同様に作成する。


      ・各ToggleのGroupにTabBarオブジェクトを設定する。


      ↑Toggleの切り替えができるようになる
      エレキベア
      エレキベア
      だいぶそれっぽくなってきたクマ〜〜〜
      マイケル
      マイケル
      TabContentの背景は今回は不要のため、
      これ以降は非表示にしておきます!

      画面切替の実装

      マイケル
      マイケル
      次はタブでの画面切替の作成です!
      空のGameObjectの下に、タブの数だけ画面を作成して実装しましょう!


      ・切り替える画面を空のGameObject(TabContent)配下に作成する。


      ・Toggleの「On Value Changed」に画面オブジェクト、Functionに「SetActive」を設定する。

      マイケル
      マイケル
      これでToggle切替時に画面が変わるようになります!

      ↑Toggle切り替えで画面が切り替わるようになる
      ※TabBarイメージは不要のためオフに変更
      エレキベア
      エレキベア
      いい感じクマ〜〜

      画面切替アニメーションの実装

      マイケル
      マイケル
      切り替えるだけならこれだけでいいですが、
      少し味気ないので切替アニメーションを付けていきます!

      ↑作成するアニメーション
      エレキベア
      エレキベア
      なかなか難しそうクマね
      マイケル
      マイケル
      一つ一つやっていけば大丈夫!
      まずは各画面のオブジェクトを子要素も含めて操作するため、
      「Canvas Group」コンポーネントをアタッチします!


      ・各画面オブジェクトに「Canvas Group」コンポーネントをアタッチする。

      Animation Controllerの作成

      マイケル
      マイケル
      そして次はAnimationControllerを作成と設定を行いましょう!


      ・AnimationControllerと各画面のAnimationを作成し、下記のように配置する。


      ・TabContentオブジェクトにAnimationコンポーネントをアタッチし、
      作成したAnimationControllerを設定する。


      ・AnimationControllerにパラメータとして各画面のトリガーを追加する。


      ・トリガーが呼ばれたら各画面のAnimationに遷移するよう設定し、DurationとOffsetを下記に設定する。


      ・各ToggleコンポーネントのChangeイベントを削除し、「Event Trigger – Pointer Click」時に
      各画面のトリガーをONにするよう設定する。

      Animationの作成

      マイケル
      マイケル
      あとは各画面のAnimationを設定していくのみ!
      動かしながら調整していきましょう!
      マイケル
      マイケル
      また、今回は遷移する際の下地となるよう、作成した画面オブジェクトの他に
      黒い背景のオブジェクト(Black)も追加しています!


      ・HomeのAnimationを下記のように設定する。

      [Homeオブジェクト]
      Active:true
      Position:画面中央

      [上記以外の画面オブジェクト]
      Active:false
      Position:画面枠外(右)


      ・Home以外のAnimationを下記のように設定する。

      [遷移する画面オブジェクト]
      Active:true
      Position:画面中央

      [上記以外の画面オブジェクト]
      Active:false
      Position:画面枠外(左)→画面枠外(右)

      マイケル
      マイケル
      これで画面切替のアニメーション設定は完了です!

      ↑画面切替アニメーションの完成
      エレキベア
      エレキベア
      おしゃれクマ〜〜〜

      おわりに

      マイケル
      マイケル
      というわけで今回はタブバーと画面切替アニメーションの実装でした!
      どうだったかな?
      エレキベア
      エレキベア
      地道にやっていけばなんとかなったクマ〜〜〜
      マイケル
      マイケル
      ソーシャルゲームを作る際にはほぼ必須となるタブバー!
      作り方をしっかりと覚えておきましょう!
      マイケル
      マイケル
      それでは今日はこの辺で!
      アデュー!!
      エレキベア
      エレキベア
      クマ〜〜〜〜

      【Unity】タブバーと画面切替アニメーションを実装する【uGUI】 〜完〜


      UnityUI
      2021-04-30

      関連記事
      【Unity】Timeline × Excelでスライドショーを効率よく制作する
      2024-10-31
      【Unity】Boidsアルゴリズムを用いて魚の群集シミュレーションを実装する
      2024-05-28
      【Unity】GoでのランキングAPI実装とVPSへのデプロイ方法についてまとめる【Go言語】
      2024-04-14
      【Unity】第二回 Wwiseを使用したサウンド制御 〜インタラクティブミュージック編〜
      2024-03-30
      【Unity】第一回 Wwiseを使用したサウンド制御 〜基本動作編〜
      2024-03-30
      【Unity】第二回 CRI ADXを使用したサウンド制御 〜インタラクティブミュージック編〜
      2024-03-28
      【Unity】第一回 CRI ADXを使用したサウンド制御 〜基本動作、周波数解析編〜
      2024-03-28
      【Unity】サウンドミドルウェアに依存しない設計を考える【CRI ADX・Wwise】
      2024-03-27