![見出し画像](https://assets.st-note.com/production/uploads/images/117118158/rectangle_large_type_2_c5c0b96d826ccc0b2512b4b148743210.png?width=800)
RAYSER進捗(20230924)
RAYSERの進捗です、VContainerを使って音量を次のシーンに引き継ぐことができるようになりました。
RAYSERの進捗です、VContainerを使って音量を次のシーンに引き継ぐことができるようになりました。 pic.twitter.com/F4UvhWGcmi
— Cz_mirror (@Cz_mirror) September 24, 2023
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);
}
}
}
この記事が気に入ったらサポートをしてみませんか?