【ハルシオンブログ】Unityでトランジションを導入してみた。というか、トランジションの事書いてるサイトがあったから使わせてもらいました!
こんにちは!坂内っす。
Unityでシーン切り替え時等にトランジションを入れようと色々調べていたところ、いいサイトがあったので、使わせていただきました。
【Unityでトランジション演出を実装する】
https://cfm-art.sakura.ne.jp/sys/archives/963
ただ、こちらのサイトでは、暗転時用と明転時用のShaderとMaterialを用意しておりますが、暗転時用の物だけを用意し暗転・明転を表現してみました。
変わるところは、Shaderの_Alphaを触るコードのところだけです。
基本的なやり方は上記サイトをご参考あれ。
これで、好きなタイミングでトランジションを行うことができるようになりました。
トランジションのオブジェクトをDontDestroyOnLoad(gameObject)してあげることで、どこのシーンからでも呼ぶことができます。
って感じの物を作ってみました。あでゅ~ノシ
Unityでシーン切り替え時等にトランジションを入れようと色々調べていたところ、いいサイトがあったので、使わせていただきました。
【Unityでトランジション演出を実装する】
https://cfm-art.sakura.ne.jp/sys/archives/963
ただ、こちらのサイトでは、暗転時用と明転時用のShaderとMaterialを用意しておりますが、暗転時用の物だけを用意し暗転・明転を表現してみました。
変わるところは、Shaderの_Alphaを触るコードのところだけです。
基本的なやり方は上記サイトをご参考あれ。
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
public class Transition : MonoBehaviour {
[SerializeField]
private Image imgTransition;
private Material _material;
void Awake() {
DontDestroyOnLoad(gameObject);
_material = imgTransition.GetComponent<Image>().material;
}
public void SetAlpha(float i) {
_material.SetFloat("_Alpha", i);
}
/// <summary>
/// time秒かけてトランジションを行う(暗転)
/// </summary>
/// <param name="time"></param>
/// <returns></returns>
public IEnumerator FadeOut(float time) {
float current = 0;
while(current < time) {
_material.SetFloat("_Alpha", current / time);
yield return new WaitForEndOfFrame();
current += Time.deltaTime;
}
_material.SetFloat("_Alpha", 1);
}
/// <summary>
/// time秒かけてトランジションを行う(明転)
/// </summary>
/// <param name="time"></param>
/// <returns></returns>
public IEnumerator FadeIn(float time) {
float current = 1;
while(current > 0) {
_material.SetFloat("_Alpha", current / time);
yield return new WaitForEndOfFrame();
current -= Time.deltaTime;
}
_material.SetFloat("_Alpha", 0);
}
}
これで、好きなタイミングでトランジションを行うことができるようになりました。
トランジションのオブジェクトをDontDestroyOnLoad(gameObject)してあげることで、どこのシーンからでも呼ぶことができます。
って感じの物を作ってみました。あでゅ~ノシ
Category: 開発日記(Unity)
« 【ハルシオンブログ】RPGのストーリーパートで宴を使ってるわけですが。 | 【ハルシオンブログ】なんかスクリプト開くとMonoDevelopが一緒に開くんですが? »
コメント
| h o m e |