見出し画像

RAYSER進捗(20230924)

RAYSERの進捗です、VContainerを使って音量を次のシーンに引き継ぐことができるようになりました。

aa

RootLifetimeScopeの値の持たせ方を勘違いしていて、次のシーンのVolumeDataという変数の受け渡し用のClassに本来であれば、Injectを付与しなければいけなかったのですが、それが抜けていたため、VolumeDataが初期化された状態になってしまっていました。

using UnityEngine;
using VContainer;
using VContainer.Unity;

namespace BGM.Volume
{
    /// <summary>
    /// ゲームシーン 音量初期設定
    /// </summary>
    public class VolumeSceneGameSetter : IStartable
    {
        private AudioSource _audioSource;
        private VolumeData _volumeData;
        readonly VolumeService _volumeService;

        [Inject]
        public void Construct(VolumeData volumeData)
        {
            _volumeData = volumeData;
        }

        public VolumeSceneGameSetter(
            AudioSource audioSource,
            VolumeData volumeData,
            VolumeService volumeService
            )
        {
            _audioSource = audioSource;
            _volumeData = volumeData;
            _volumeService = volumeService;
        }

        void IStartable.Start()
        {
            this._audioSource.volume = _volumeData.GetVolume();
            UnityEngine.Debug.Log(_audioSource.volume);
        }
    }
}

この記事が気に入ったらサポートをしてみませんか?