본문 바로가기

Unity/UniRx & UniTask8

Observable 사용 방법 <ReactiveProperty> Reactive Property 사실 이 기능만 알아도 굉장히 편하게 사용할 수 있다고 생각합니다. 리액티브 프로퍼티는 값을 읽고 쓸 수 있으며 값이 변경 될 때 메시지를 발행하는 객체입니다. 사용방법 기본적으로 ReactiveProperty 의 형태를 취합니다. ReactiveProperty test = new ReactiveProperty(); test.Subscribe(x => Debug.Log(x)); ReactiveProperty는 IDisposable을 상속받고 있기 때문에 선언된 변수에 노출만 시켜주면 구독처리가 가능합니다. 이후 test의 value가 변화할 때마다 통지가 진행됩니다. 사용방법도 매우 쉽고 편리합니다. Tip 기본적인 자료형을 담고 있는 Reactive property들이 .. 2023. 2. 12.
Observable 사용 방법 <Subject> Observable을 활용하는 방법을 소개하고자 합니다. 1. Subject Subject는 Observer 패턴에 있어서 아주 핵심이 되는 개념이고 이는 UniRx에도 해당이 됩니다. 단어의 뜻처럼 주제 어떠한 주제에 대한 스트림을 흘릴 것이냐?를 정의하는 부분입니다. Subject는 IObserver와 IObservable 두 가지를 구현하는 객체입니다. 구독을 등록한 Observer에게 메시지 발행 타이밍에 브로드 캐스트 방식으로 알립니다. 예를 들면 var subject = new Subject(); //1이라는 값을 발행하는 메시지를 보낼거야 subject.OnNext(1); //OnNext를 받으면 디버그 로그에 출력 //OnError를 받으면 에러메시지를 디버그 로그에 출력 //OnCompl.. 2023. 1. 24.
UniRx의 작동 원리(5) 스케쥴러 스케쥴러란? Observable의 메시지의 처리를 언제 어디에서 실행할 것인가를 제어하기 위한 도구 입니다. Observable에서 병렬 처리를 수행하는 경우 어떤 스레드에서 처리할지, 어떤 타이밍에 실행할 것인가를 제어하는 것은 중요합니다. 이러한 처리를 쉽게 해주는 것이 스케쥴러 입니다. UniRx에서는 다음과 같은 스케쥴러를 제공합니다. ImmediateScheduler Scheduler.Immediate 현재 실행중인 스레드에서 즉시 처리 CurrentThreadScheduler Scheduler.CurrentThreadScheduler 일단 큐에 처리를 담았다가 현재 처리하고 있는 스레드에서 순서대로 처리 ThreadPoolScheduler Scheduler.ThreadPoolScheduler .. 2023. 1. 8.
UniRx의 작동 원리(4) Observable의 본질 Observable은 생성 방법과 타이밍에 따라 움직임이 다릅니다. 어떤 때에 어떤 행동을 하는지 확실히 알아둘 필요가 있습니다. Subject -> Operator -> Operator Observer 즉, 옵저버와 연결되지 않은 상태 IObservable을 상속 받고 정의한 것만으로는 메시지 전달이 안됩니다. Observable 각 요소를 연결하고 실행하려면 IObserver의 Subscribe()를 연결해줘야 합니다. 따라서 이 상태에서는 메시지를 수신 할 수 없으므로 "연결 확인"이라는 처리가 필요합니다. 이 연결을 확인하는 데 필요한 처리는 Subscribe()의 실행입니다. 예시 var subject = new Subject(); //string을 받으면 현재 + 스페이스 + 입력받은 stri.. 2022. 12. 18.