Unityに関連する記事です

 この手順でも引き続き、ゲームの演出を追加していきます。

 この手順ではゴール地点を通過したら、落下判定部分に落下防止用の床を表示して、ゲームオーバーにならないようにする処理を追加します。


<実装動画 >
https://gyazo.com/10283e27da7e2d4429c1d8beea868ffa


手順29 ー落下防止用の床の制御ー
49.GoalHouse ゲームオブジェクトを修正して、落下防止用の床を追加する
50.GoalChecker スクリプトを修正して、ゲームクリア時に落下防止用の床を制御する



 新しく学習する内容は以下になります。

・DOTweenの機能と実装例ァ SetRelativeメソッドー



49.GoalHouse ゲームオブジェクトを修正して、落下防止用の床を追加する

1.設計


 GoalHouse ゲームオブジェクトに落下防止用の床のオブジェクトを追加して、ゲームクリア時に画面外からゲーム画面内に移動させて表示するように制御を行います。

 落下防止用の床はすでにある、Ground_Set ゲームオブジェクトを複製を利用します。
これは親子関係にもなっているので、子オブジェクトをまとめて移動する際に便利です。
また子オブジェクト(床役のゲーオブジェクト)にもコライダーなどの設定が終了しているので、これを利用しましょう。


完成図



2.Ground_Set ゲームオブジェクトを複製して、Ground_Set_Secret ゲームオブジェクトを作成する


 Prefabs フォルダにある GoalHouse ゲームオブジェクトを選択して、インスペクターの一番上にある Open Prefab ボタンをクリックして編集モードに切り替えます。

 Ground_Set ゲームオブジェクトを選択して右クリックをしてメニューを開き、Duplicate を選択して複製を行います。
複製したGround_Set の名前を Ground_Set_Secret に変更します。このゲームオブジェクトを落下防止用の床として使用します。


ヒエラルキー画像



3.Ground_Set_Secret ゲームオブジェクトの位置を設定する


 ゲームの画面外から上方向にせり上がってくる演出を設計しているため、複製元のゲームオブジェクトよりも低い位置に設定を行います。
インスペクター画像とSceneビュー画像を参考に設定してください。
表示されたときに画面に映らないようにするのがポイントです。そうでないと始めからそこに床があったことがバレてしまうためです。


Sceneビューとインスペクター画像



4.Ground_Set_Secret ゲームオブジェクトの子オブジェクトである Nature_props_15 ゲームオブジェクトを複製する


 Ground_Set_Secret ゲームオブジェクトの子オブジェクトである Nature_props_15 を複製して、合計 15 個になるようにします。


Ground_Set_Secret ゲームオブジェクト ヒエラルキー画像



 1つずつ位置をずらして、水平方向に 15 個のブロックが並ぶように設置してください。


Sceneビュー画像



 以上でGoalHouse ゲームオブジェクトは完成です。


5.50.GoalChecker スクリプトを修正して、ゲームクリア時に落下防止用の床を制御する


 実際に Scene ビューに GoalHouse ゲームオブジェクトを設置して、Game ビューにどのように見えるかを確認しておきます。
新しく追加した落下防止用の床が画面外にあれば問題ないでしょう。


SceneビューとGameビュー画像



 確認が終了したら GoalHouse ゲームオブジェクト削除しておいてください。


50.GoalChecker スクリプトを修正する

1.設計


 GoalHouse ゲームオブジェクトに新しく追加した落下防止用の床のオブジェクトを GoalChecker スクリプトから操作を行います。
ゲームをクリアした際に落下防止用の床を表示したいので、ゴール判定を通過するまでは、落下防止用の床は非表示にして隠しておきます。

 ゴール判定を通過してゲームクリアの状態になったら、落下防止用の床を表示し、DOTweenの処理によって徐々に画面外からせり上がってくる演出を行います。


2.GoalChecker スクリプトを修正する


 新しく宣言フィールドに secreFloorObj 変数を追加します。Ground_Set_Secret ゲームオブジェクトの制御を行うための変数です。

 OnTriggerEnter2D メソッドと SetUpGoalHouse メソッドに処理を、新しく追加した Ground_Set_Secret ゲームオブジェクトに関する処理を追加します。


GoalChecker.cs

 <= クリックすると開きます



3.<DOTweenの機能と実装例ァ SetRelativeメソッドー>


 SetRelativeメソッドは DOTween機能の1つです。以下の実装例のように、メインとなるDOTweenの処理に付随する形で処理を記述します。
このようにメソッドにドットをつなげて処理を記述する方法をメソッドチェインといいます。

  // 落下防止の床を画面下からアニメさせて表示
  secretfloorObj.transform.DOLocalMoveY(0.45f, 2.5f).SetEase(Ease.Linear).SetRelative();

 SetRelativeメソッドを追加した処理では、絶対座標(ワールド座標系)ではなく相対座標(ローカル座標)で処理を行うようになります。
例えば、(0,10,10)に移動したい、という場合ではなく、今いる位置から(0,10,10) だけ移動したいという場合は、
この SetRelativeメソッドをDOTweenの処理に追加することで実装出来ます。

 今回の処理では、secretfloorObj.transform.DOLocalMoveYメソッドがメインとなる処理ですので
この移動距離である 0.45f については、絶対座標ではなく、相対座標で移動を行う、という命令になります。


参考サイト
Qiita @lycoris102 様
[Unity] DOTweenで相対的に値を増減させたい時には .SetRelative() を使う
https://qiita.com/lycoris102/items/40d2410932ec24d...
anzfactory 様
DOTweenの自分用メモ
https://gist.github.com/anzfactory/da73149ba91626b...


4.GoalHouse ゲームオブジェクトの GoalChecker スクリプトの設定を行う


 Prefabs フォルダにある GoalHouse ゲームオブジェクトを選択して、インスペクターの一番上にある Open Prefab ボタンをクリックして編集モードに切り替えます。


GoalHouse ゲームオブジェクト インスペクター画像



  GoalChecker スクリプトに新しく追加した secretFloorObj 変数が表示されています。
この変数は Ground_Set_Secret ゲームオブジェクトを操作するために利用する変数ですので
こちらに Ground_Set_Secret ゲームオブジェクトをドラッグアンドドロップしてアサインしてください。


<手順動画 アサイン>
https://gyazo.com/958021d771872d798e520c5b56e6b73f


GoalHouse ゲームオブジェクト インスペクター画像



5.ゲームを実行して動作を確認する


 GoalHouse ゲームオブジェクトの設定が終了したら、ゲームを実行して正常に動くかをデバッグを行って確認します。

 処理の流れとしては、GoalHouse ゲームオブジェクトのゴールの判定部分を通過した際に
隠れていた(非表示になっていた) が表示されて、徐々に画面外から画面の中に移動してきて、ゴールの床と同じ高さまで来て停止すれば成功です。
DOTween の機能を利用しているので、一気に床が出るのではなく、ゆっくりと下方向からせり上がってくる演出を実装しています。


<実装動画 >
https://gyazo.com/10283e27da7e2d4429c1d8beea868ffa


 以上でこの手順は終了です。

 次は 手順30 ースマホでの制御ー です。

コメントをかく


「http://」を含む投稿は禁止されています。

利用規約をご確認のうえご記入下さい

Menu



技術/知識(実装例)

2Dおはじきゲーム(発展編)

2D強制横スクロールアクション(発展編)

3Dダイビングアクション(発展編)

2Dタップシューティング(拡張編)

レースゲーム(抜粋)

2D放置ゲーム(発展編)

3Dレールガンシューティング(応用編)

3D脱出ゲーム(抜粋)

2Dリアルタイムストラテジー

2Dトップビューアドベンチャー(宴アセット使用)

3Dタップアクション(NavMeshAgent 使用)

2Dトップビューアクション(カエルの為に〜、ボコスカウォーズ風)

VideoPlayer イベント連動の実装例

VideoPlayer リスト内からムービー再生の実装例(発展)

AR 画像付きオブジェクト生成の実装例

AR リスト内から生成の実装例(発展)

private



このサイト内の作品はユニティちゃんライセンス条項の元に提供されています。

管理人/副管理人のみ編集できます