おーみんブログ

C#, ASP.NET Core, Unityが大好きです。

【Unity】オブジェクトをフェードアウトさせる簡単な方法。

   f:id:bookreadkun:20190110115452p:plain

おはようございます。おーみんです。

 

現在UnityでRPGを作成中です。

今回の記事ではコードをそんなに書かなくても出来るオブジェクトのフェードアウトのやり方について解説していこうと思います。

 

まずは完成した様子から見てみましょう。

 

 

このダメージ表記は自身でアニメーションを作成し、アニメーションコントローラに設定することで完成しました。

 

フェードアウトに関しては色々なサイトでスクリプトが紹介されていますが、スクリプト書くの面倒だ~~~と言う方にはかなり参考になると思います。

 

ちなみに僕のやり方だとプログラムは数行しか書きません(笑)

 

ではやり方を解説していきましょう!

 

UIのフェードアウトについて

大まかに順番を書きます。

 

  1. ヒエラルキービューにてcreate→UI→PanelでPanelを作成
  2. Panelの子オブジェクトを作成
  3. Windows→Animationにてアニメーション作成
  4. Animation Controllerでオブジェクトへの動きを設定
  5. 数行のコードを書く

 

ザッとこんな感じです。

1と2に関しては別記事「RPGでよく見る戦闘シーンを作成」で説明していますので、ここでの説明は省略します。

 

3のアニメーション作成から説明していきましょう。

 

アニメーションでフェードアウトを作成

子オブジェクトを選択後、Windows→Animationを選択します。

 

今回は2つのアニメーションを作ります。

 

まず1つ目。

f:id:bookreadkun:20190110112245p:plain

 

Colorを選択。

今回はフェードアウトを行いたいのでイジる部分はcolor.aの部分のみです。

0:00でcolor.aの値を「1」に、1:00でcolor.aの値を「0」にしてください。

こちらの名前は「TakeDamagedenemytext」とすることにします。

 

2つ目。

create New Clip...を選択し、こちらはcolor.aの値を0:00、1:00の両方とも「0」にする。

f:id:bookreadkun:20190110112346p:plain

こちらの名前は「default」としましょう。

 

これでアニメーションは完成です。

ここまで行うと自動的にプロジェクトビューにアニメーションとアニメーションコントローラが出来上がっています。

 

Animation Controllerでオブジェクトに設定

f:id:bookreadkun:20190110113016p:plain

 

通常設定では「default」になっていない場合は「default」を右クリックして「Set as Layer Default State」を選択します。

 

TakeDamagedenemytextからdefaultへMake Transitionを設定し、パラメータはBoolを選択。

 

f:id:bookreadkun:20190110113522p:plain

 

Conditionは「true」と設定します。

これは通常設定でdefault→TakeDamagedenemytextに移行してもすぐにdefaultに戻るようにするためです。

 

これでAnimation Controllerの設定も完了です。

 

数行のコードを書く

private Animator animator;

 

  void Start(){

     this.animator = GetComponent<Animator>();

  }

 

  public void 関数名(){

     animator.Play("TakeDamagedenemytext");

  }

 

これだけですw

 

以上でオブジェクトをフェードアウトさせることが出来ます。

 

最後に

今回僕も色々なサイトを回ってオブジェクトのフェードアウトについて調べたんですが、ほとんどがスクリプトの紹介なんですよね~。

 

視覚的に分かるアニメーションでもフェードアウトが実現できるので、こっちも紹介しておくかということで今回はこんな記事を書きました。

 

ぜひ参考になれば嬉しいです。