09 «1.2.3.4.5.6.7.8.9.10.11.12.13.14.15.16.17.18.19.20.21.22.23.24.25.26.27.28.29.30.31.» 11

ハルシオンシステムの気ままBlog

株式会社ハルシオンシステムのメンバーが送る、UnityやらJavaやらの技術的話題から、自社開発のアプリの宣伝とかとかのブログです。ほんと気ままにいきたいと思います。更新日は毎週 月 木でっす!

 

【Unity】フェードアウト・フェードイン 

こんにちわ、坂内っす。
今回はフェードイン・フェードアウトについてサクッと書いてみようかと
思っております。
結構色々な方がホームページ等で書かれていますが、ほぼ同じです!!あしからず。

フェードイン・フェードアウトってゲームではよく使われますよね~
ってことで、ミニネタとして書いておきまっす!

まずは、フェードインフェードアウト用のコントローラを作成。
using UnityEngine;
using System.Collections;

public class FadeController : MonoBehaviour {
public enum FADE_SCENE{
FADE_OUT_TITLE = 1,
FADE_OUT_SCENE1,
FADE_OUT_SCENE2,
}
public Texture2D blackTexture;
float alpha;
public FADE_SCENE fadeoutToScene;
bool fadeInFlg;

void Start () {
fadeoutToScene = 0;
alpha = 1;
fadeInFlg = true;
}

public void MoveScene(FADE_SCENE moveToScene){
fadeoutToScene = moveToScene;
}

void OnGUI(){
if(fadeInFlg){
float dim = Mathf.Clamp01(Time.deltaTime);
alpha -= dim;
GUI.color = new Color(0, 0, 0, alpha);
GUI.DrawTexture(new Rect(0, 0, Screen.width, Screen.height),
blackTexture);
if(alpha <= 0){
fadeInFlg = false;
}
}else if((int)fadeoutToScene > 0){
float dim = Mathf.Clamp01(Time.deltaTime);
alpha += dim;
GUI.color = new Color(0, 0, 0, alpha);
GUI.DrawTexture(new Rect(0, 0, Screen.width, Screen.height),
blackTexture);
if(alpha > 1){
switch(fadeoutToScene){
case FADE_SCENE.FADE_OUT_TITLE:
Application.LoadLevel("Title");
break;
case FADE_SCENE.FADE_OUT_SCENE1:
Application.LoadLevel("Scene1");
break;
case FADE_SCENE.FADE_OUT_SCENE2:
Application.LoadLevel("Scene2");
break;
}
}
}
}
}

で、blackTextureに1pxの黒いpngをアサインしておきます。
これで準備完了!

あとは、各シーンにて移動するときにこのコントローラのMoveSceneを呼ぶだけ!

using UnityEngine;
using System.Collections;

[ExecuteInEditMode]
public class Test : MonoBehaviour {
FadeController fade;

void Start(){
fade = gameObject.GetComponent<FadeController>();
}

public void MoveToScene1(){
fade.MoveScene(FadeController.FADE_SCENE.FADE_OUT_SCENE1);
}
public void MoveToScene2(){
fade.MoveScene(FadeController.FADE_SCENE.FADE_OUT_SCENE2);
}
}
スポンサーサイト

Category: 開発日記(Unity)

tb 0 : cm 0   

コメント

コメントの投稿

Secret

トラックバック

トラックバックURL
→http://halcyonsystemblog.blog.fc2.com/tb.php/66-7feb9ad0
この記事にトラックバックする(FC2ブログユーザー)