1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

【Unity】おしゃれフェードを使ったシーン遷移を使いやすくした

Posted at

はじめに

これらの通りにやって、若干使いづらかったのでFade用のスクリプトを書き換えました。

環境

  • OS: Windows 11 Home
  • バージョン: 21H2
  • Unity Editer Version: 20203.27f1

どう使いづらい?

フェードアウトさせてから始まるシーンではフェードの濃さの変数であるRangeをinspectorから1にしておかないとならないが、そうすると編集時にも画面が真っ暗になって使いづらい。

解決策

FadeImage.cs と Fade.csを以下の通り書き換えました。

FadeImage.cs
using UnityEngine;
using System.Collections;
using UnityEngine.UI;

public class FadeImage : UnityEngine.UI.Graphic , IFade
{
	[SerializeField]
	private Texture maskTexture = null;

	// [SerializeField, Range (0f, 1f)]
	[Range (0f, 1f)] // SerializeFieldを削除
	private float cutoutRange;

//  ~~ 省略 ~~

}
Fade.cs
using UnityEngine;
using System.Collections;
using UnityEngine.Assertions;

public class Fade : MonoBehaviour
{
	IFade fade;
	[SerializeField] bool StartFade; // start時にfadeを掛けるか.
	float cutoutRange=0;

	// void Start ()
	void Awake () // StartからAwakeに変更
	{
		Init ();
		fade.Range = cutoutRange;
	}


    // コメントアウトしました
	// void OnValidate ()
	// {
	// 	Init ();
	// 	fade.Range = cutoutRange;
	// }

	void Init ()
	{
		fade = GetComponent<IFade> ();
        if (StartFade == true)
        {
            cutoutRange = 1;
        } else {
            cutoutRange = 0;
		}
	}

//  ~~ 省略 ~~

}

まず、FadeImage.csでなぜか0か1以外の値でしか保存できないRangeパラメータはinspectorから更新する必要はないため、Seriarizefield属性を削除しちゃいました。

スタート時にフェードを1にするか0にするかは、FadeコンポーネントのstartFadeをtrueにするかどうかで管理しています(これは飲用元の設計)。ただ、inspectorから変更すると、Onvalidate関数が反応して、真っ暗になってしまうため、Fade.csのOnValidate関数を削除しました。

また、Fade.csのStart関数内にあった記述ですが、シーン遷移をした後にオブジェクトが参照できないと言われることがあったので、Awake関数に移行しました。

以上,3点を変更することで、画面が真っ暗にならずに作業できるようになりました。

おわりに

根本的な解決ではないし、将来困りそうな気がしますが、私の技術力ではここが時間的に限界。
もっとスマートな解決策があれば、ぜひ教えてください。

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?