using UnityEngine; using Normal.Realtime; public class HeadphoneSync : RealtimeComponent { [SerializeField] private GameObject headphoneObject; protected override void OnRealtimeModelReplaced(HeadPhoneSyncModel previousModel, HeadPhoneSyncModel currentModel) { if (previousModel != null) { previousModel.isActiveDidChange -= OnIsActiveChanged; } if (currentModel != null) { if (currentModel.isFreshModel) currentModel.isActive = headphoneObject.activeSelf; UpdateHeadphoneState(); currentModel.isActiveDidChange += OnIsActiveChanged; } } private void OnIsActiveChanged(HeadPhoneSyncModel model, bool isActive) { UpdateHeadphoneState(); } private void UpdateHeadphoneState() { headphoneObject.SetActive(model.isActive); } public void SetHeadphoneActive(bool active) { model.isActive = active; } }