コンフィグ画面にてメッセージプレビューで透過度を変更し、実際に動く方法が分かりました。
自分が質問した宴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の時に透明になってました。
宴エンジンを参照するコードが分かったのでまたちょっと色々と試してみます。
皆さんも良い作品を作りましょう。
コメント