おーみんだよ。

おーみんだよ。

プログラミング(主にUnity)や気になるニュースについて。

【Unity第二十三話】シーン遷移のフェードアウトを簡単に実装

         f:id:bookreadkun:20190103082432p:plain

おはようございます。おーみん(@Ooooooomin_365)です。

 

現在UnityでRPGゲームを作成中です。

前回の記事で、フィールド上を歩いていたらいきなり敵に遭遇し、戦闘シーンへ遷移する方法を解説しました。

 

ただし、それだけだと瞬時に戦闘シーンへ遷移してしまうため、ちょっと微妙な感じだったんですよね・・・(笑)

そこで今回は、そのシーン遷移の際にフェードアウト機能を付ける方法を解説します。

 

まずはイメージを掴んでもらうために、完成した様子を載せましょう。

ツイートの内容は気にしないでください。

 

 

これは侍がcubeに衝突すると戦闘シーンへ遷移しているのですが、cubeにぶつかった際に画面が暗くなってから戦闘シーンに遷移している(瞬時に切り替わってはいない)ことが分かります。

 

では、どのようにしたらこのような設定が出来るのか解説していきましょう。

 

シーン遷移のフェードアウトを簡単に実装

 

やり方は簡単です。流れは以下のような感じ。

 

  1. naichilabをダウンロード
  2. Zipファイルを解凍後、インポート
  3. FadeManagerをヒエラルキービューにドラッグ&ドロップ
  4. FadeManager(Script)のDebug Modeチェックを外す
  5. スクリプト作成後、適当なオブジェクトへドラッグ&ドロップ

 

1~4に関しては説明するまでもないでしょう。

5のスクリプトについて少しだけ。

 

前回の記事にて、cubeに衝突したら戦闘シーンへ遷移する方法を書きました。その時の遷移に関するスクリプトは以下のようになっています。

f:id:bookreadkun:20190102093212p:plain

 

これの" Scene Manager.LoadScene("fighting"); "の部分を "FadeManager.Instance.LoadScene("fighting", 1.0f);"に変更してください。

 

これだけです(笑)

※文法はFadeManager.Instance.LoadScene("遷移先シーンの名前",フェードアウト時間);です。

 

このスクリプトを遷移前シーンの適当なオブジェクトに付ければフェードアウトが出来るでしょう。

 

ぜひ参考になって頂ければ嬉しいです。