原因は複数あると思います。
>メッセージウィンドウの透過度設定が逆転していました。
まず、UnityのCororのa(アルファ値)は「不透明度」です。なので、aの値が0の場合は透明になって1の場合は不透明になります。
いっぽう、宴のコンフィグ画面のメッセージウィンドウの値は「透明度」です。なので、0の場合は不透明になって1の場合は透明になります。
つまり、逆になります。
これは、一般的なゲームの仕様(透明度を扱う)と、一般的なゲーム開発の仕様(透明度ではなく不透明度を扱う)が逆転しているからで、宴でもそれに合わせています。
サンプルプログラムを、下記のように修正すれば思います(実際は、コンフィグデータへ値を反映する必要があるので、これは不要なプログラムです)
color.a = 1.0f-transparency;
宴のコンフィグデータは、セーブデータに反映させたりシナリオに反映させたりする必要があるので、
AdvConfigのほうに値を設定する必要があります。
宴側で書いているコンフィグ画面のソースコードは以下にあります。
Utage/Scripts/TemplateUI/UtageUguiConfig.cs
//メッセージウィンドウの透過色(バー)
public virtual float MessageWindowTransparency { set { if (!IsInit) return; Config.MessageWindowTransparency = value; } }
宴のコンフィグ画面では、下記のように各ボタンやスライダーのOnValueChangedから各パラメータのsetプロパティを呼び出して、値の変化を反映させています。
ポイントとしては、最終的に Config.MessageWindowTransparency に値を設定されるようにするということです。
なので、上記のソースコードの場合であれば、以下のように追記・修正する必要があります。
public AdvEngine Engine { get { return this.GetComponentCacheFindIfMissing(ref this.engine); } }
[SerializeField]
protected AdvEngine engine;
//コンフィグデータへのインターフェース
protected virtual AdvConfig Config { get { return Engine.Config; } }
private void UpdateTransparency(float transparency)
{
// メッセージウィンドウの透過度を変更
Config.MessageWindowTransparency = transparency;
}
2023年7月27日木曜日 18:35:13 UTC+9 ダイス: