【Unity】【UniRx】ReactiveCollection で配列を監視する

using UnityEngine;
using UniRx;

public class Sample : MonoBehaviour
{
    private ReactiveCollection<int> _intList = new ReactiveCollection<int>();
    
    private void Start()
    {
        // リストを購読する
        this._intList
            .ObserveAdd()
            .Subscribe(value =>
            {
                Debug.Log($"[Add]Index={value.Index},Value={value.Value}");
            });
        this._intList
            .ObserveMove()
            .Subscribe(value =>
            {
                Debug.Log($"[Move]Value={value.Value},NewIndex={value.NewIndex},OldIndex={value.OldIndex}");
            });
        this._intList
            .ObserveRemove()
            .Subscribe(value =>
            {
                Debug.Log($"[Remove]Index={value.Index},Value={value.Value}");
            });
        this._intList
            .ObserveReplace()
            .Subscribe(value =>
            {
                Debug.Log($"[Replace]Index={value.Index},NewValue={value.NewValue},OldValue={value.OldValue}");
            });
        this._intList
            .ObserveReset()
            .Subscribe(value =>
            {
                Debug.Log($"[Reset]");
            });

        // リストを更新する
        this._intList.Add(0);
        this._intList.Add(1);
        this._intList.Add(2);
        this._intList.Move(0, 2);
        this._intList.Remove(1);
        this._intList[0] = 3;
        this._intList.Clear();
    }
}