【Unity】オブジェクトをフェードアウトさせる簡単な方法。
おはようございます。おーみんです。
現在UnityでRPGを作成中です。
今回の記事ではコードをそんなに書かなくても出来るオブジェクトのフェードアウトのやり方について解説していこうと思います。
まずは完成した様子から見てみましょう。
よっしゃあああ!
— 超おーみん@ゲーム作ってます (@Ooooooomin_365) 2019年1月9日
ちゃんと攻撃したらダメージ量も表記できるようになったぜ!(今は40固定)
スクリプトよりもアニメーションコントローラ使った方が楽だったわww
unityほんと楽しいな。
明日は味方キャラへのダメージ表記と敵を倒すシーンまでいきたい。#unity #駆け出しエンジニアと繋がりたい pic.twitter.com/SkKRqHvA9V
このダメージ表記は自身でアニメーションを作成し、アニメーションコントローラに設定することで完成しました。
フェードアウトに関しては色々なサイトでスクリプトが紹介されていますが、スクリプト書くの面倒だ~~~と言う方にはかなり参考になると思います。
ちなみに僕のやり方だとプログラムは数行しか書きません(笑)
ではやり方を解説していきましょう!
UIのフェードアウトについて
大まかに順番を書きます。
- ヒエラルキービューにてcreate→UI→PanelでPanelを作成
- Panelの子オブジェクトを作成
- Windows→Animationにてアニメーション作成
- Animation Controllerでオブジェクトへの動きを設定
- 数行のコードを書く
ザッとこんな感じです。
1と2に関しては別記事「RPGでよく見る戦闘シーンを作成」で説明していますので、ここでの説明は省略します。
3のアニメーション作成から説明していきましょう。
アニメーションでフェードアウトを作成
子オブジェクトを選択後、Windows→Animationを選択します。
今回は2つのアニメーションを作ります。
まず1つ目。
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」にする。
こちらの名前は「default」としましょう。
これでアニメーションは完成です。
ここまで行うと自動的にプロジェクトビューにアニメーションとアニメーションコントローラが出来上がっています。
Animation Controllerでオブジェクトに設定
通常設定では「default」になっていない場合は「default」を右クリックして「Set as Layer Default State」を選択します。
TakeDamagedenemytextからdefaultへMake Transitionを設定し、パラメータはBoolを選択。
Conditionは「true」と設定します。
これは通常設定でdefault→TakeDamagedenemytextに移行してもすぐにdefaultに戻るようにするためです。
これでAnimation Controllerの設定も完了です。
数行のコードを書く
private Animator animator;
void Start(){
this.animator = GetComponent<Animator>();
}
public void 関数名(){
animator.Play("TakeDamagedenemytext");
}
これだけですw
以上でオブジェクトをフェードアウトさせることが出来ます。
最後に
今回僕も色々なサイトを回ってオブジェクトのフェードアウトについて調べたんですが、ほとんどがスクリプトの紹介なんですよね~。
視覚的に分かるアニメーションでもフェードアウトが実現できるので、こっちも紹介しておくかということで今回はこんな記事を書きました。