Unity

【Unity】宴ツールのコンフィグ画面での、サンプルメッセージプレビューの透過度変更

Unity

コンフィグ画面にてメッセージプレビューで透過度を変更し、実際に動く方法が分かりました。

自分が質問した宴Q&Aのスレッド
コンフィグのメッセージウィンドウ透過度

実際にこの状態でプレビュー画面でも変更されているのが分かると思います。
(画面を整えてから載せなさいよって思われそうだけど…)

実際に使用したコードはこちらです。

using UnityEngine;
using UnityEngine.UI;

using Utage;
using UtageExtensions;

public class MessageWindowConfig : MonoBehaviour
{
    public AdvEngine Engine { get { return this.GetComponentCacheFindIfMissing(ref this.engine); } }
    [SerializeField]
    protected AdvEngine engine;

    //コンフィグデータへのインターフェース
    protected virtual AdvConfig Config { get { return Engine.Config; } }
    
    public Image MessageWindowCanvas;
    public Slider transparencySlider;

    private void Start()
    {
    // スライダーの初期値を設定
    float initialTransparency = 0.8f;
    transparencySlider.value = initialTransparency;
    UpdateTransparency(initialTransparency);
    }

    public void OnTransparencySliderValueChanged()
    {
    float transparency = transparencySlider.value;
    UpdateTransparency(transparency);
    }

    private void UpdateTransparency(float transparency)
    {
        // メッセージウィンドウの透過度を変更

        Config.MessageWindowTransparency = transparency;

        Color color = MessageWindowCanvas.color;
        color.a = 1.0f - transparency;
        MessageWindowCanvas.color = color;
    }
}

color.a = 1.0f – transparency; は本当は不要みたいです。実際にやってみて問題ないならカットしていいと思います。

あとはEventSystemにアタッチし、メッセージウィンドウ透過度のスライダーにOnButtonクリックを追加します。

修正前はValue=1の挙動がシナリオの中とコンフィグで逆転していて、コンフィグでは正常な挙動でもシナリオではValue=1の時に透明になってました。

宴エンジンを参照するコードが分かったのでまたちょっと色々と試してみます。

皆さんも良い作品を作りましょう。

コメント