クリアしたらテキストを表示しフェードアウトする【Unity】

前回作成したゴールフラッグに、Unityちゃんがたどり着いたら、フェードアウトするようにします。

具体的には、クリアしたら「ステージクリア!」などのテキストを表示しつつ、徐々に画面が暗くなるイメージですね。

スポンサーリンク

ゴールフラッグに触れたらフェードアウトする方法

パネルのRGBを0にする

まずは、Canvasを用意してその中に「Panel」と「Text」を作りましょう。

次に、Panelを選択してColorの値を全て「0」に変更しておきます。

「A」の値をスクリプトから徐々に増やす事で、フェードアウトを表現できます。ちなみに「A」はalphaの事で透明度の事になります。

フェードアウト時にテキストを表示させる場合は、作成したテキストをお好みで編集してください。

暗転するだけで構わない場合は、作成しなくてもOKです。

フェードアウト用のスクリプトを作成

フェードアウト用スクリプト

新しく「Fade」スクリプトを作成します。

Imageコンポーネントを取得して、isFadeoutがtrueになり次第徐々にalphaの値を増やすといった内容のスクリプトですね。

保存したらパネルにアタッチしておきます。

ゴールフラッグにアタッチするスクリプトの作成

後は、どのタイミングでフェードアウトするのかを指定してあげれば良いですね。

今回の場合は、ゴールフラッグに接触したら暗転するようにするので、トリガースクリプトを作ってゴールフラッグにアタッチすれば良いわけです。

トリガースクリプト

こんな感じでOnTriggerEnterを使って暗転フラグを「true」にしましょう。

このタイミングでテキストもアクティブにすることで、文字が表示されつつフェードアウトします。

ゴールフラッグに触れたら暗転する

出来栄えとしてはこんな感じです。

一応フェードアウト中もUnityちゃんを操作できるので、それが嫌な場合は「Time.timeScale = 0;」を使って止めるのもありかと思います。