Unity/R3/値変更検知/ReactivePropertyData
提供: 初心者エンジニアの簡易メモ
2025年1月30日 (木) 04:40時点におけるAdmin (トーク | 投稿記録)による版 (ページの作成:「<pre> using UnityEngine; using R3; public class ReactivePropertyDataScene : MonoBehaviour { class SampleData { public bool IsCompleted = false; }...」)
using UnityEngine; using R3; public class ReactivePropertyDataScene : MonoBehaviour { class SampleData { public bool IsCompleted = false; } class SampleReactiveProperty { private SampleData sampleData; public ReactiveProperty<bool> IsCompleted; public SampleReactiveProperty(SampleData sampleData) { this.sampleData = sampleData; IsCompleted = new ReactiveProperty<bool>(sampleData.IsCompleted); // ReactiveProperty の変更を監視し、SampleData に反映 IsCompleted.Subscribe(value => sampleData.IsCompleted = value); } public void Request() { IsCompleted.Value = true; } } void Start() { var sampleData = new SampleData(); var sampleReactiveProperty = new SampleReactiveProperty(sampleData); sampleReactiveProperty.IsCompleted .Subscribe(value => { if (!value) return; Debug.Log("Change IsCompleted : " + value); Debug.Log("Change sampleData.IsCompleted : " + sampleData.IsCompleted); }) .AddTo(gameObject); // 5秒後に遅延実行 Observable.Timer(System.TimeSpan.FromSeconds(5)) .Subscribe(_ => { sampleReactiveProperty.Request(); }).AddTo(gameObject); } }