Game Development, 게임개발/개발

UniRx, Reactive Extension for Unity - 개념 2

게임이 더 좋아 2022. 1. 14. 00:50
반응형
728x170

 

UniRx에 중요한 키워드가 몇 가지 있다.

그것에 대해서 충분히 알아보자.

알지 못하면 그냥 코드를 따라쓰는 것 뿐이 안된다.

 


 

Subject

 

실제로 우리가 UniRx를 쓰는데 모든 기초가 되는 객체이다.

뒤에 나올 ReactiveProperty도 다른 스트림 생성하는 객체의 베이스는 Subject를 따른다.

IObserver이기도 하면서 IObservable의 대상이다. 

즉, 스트림을 발행도 할 수 있고 스트림을 받는 주체이기도 하다.

 

UniRx를 쓰려면 스트림을 생성해야 하는데

스트림을 생성하는 것이 바로 Subject이다.

줄여서 말하자면 우리가 Reactive Programming을 하기 위해서어떤 값의 변화를 관찰하고 싶다..?해당 값을 Subject화 시키는 것이다.그리고 해당 Subject가 스트림을 생성하면Subject의 Subscribe를 통해 동작을 할 수 있다.

 

 

Stream

 

데이터 스트림을 말하는 것으로 실제로 데이터의 집합이라고 보면 되겠다.

데이터의 집합에서 우리의 조건에 맞는 것을 쿼리문으로 꺼낼 수도 변환시킬 수도 있다.

즉, 데이터로 조작할 수 있는 것은 모두 수행할 수 있다.

 

다만 스트림은 그냥 만들어지지 않는다. 스트림은 Subject가 만들어낸다.

Observable한 객체가 발행하는 것이다.

그것이 바로 Subject다.

 

 

Observer

 

Observer 는 관찰자라는 뜻이며 Observable (관찰 가능한) 이라는 개념의 객체를 사용한다.

Observer는 관찰되었을 때 수행하는 객체를 의미한다.

이것 또한 Subject이다.

 

 

Observable(우리가 쓰고자하는 주요 목적)

 

 

Observable 객체를 생성한다는 것은 스트림에 흘려 보내는 데이터

즉, 프로그램 내에서 발생하는 각종 이벤트들의 관찰을 시작한다는 뜻이다.

 

?? 그렇다면 당연히 게임은 진행하면서 값의 변화가 엄청나게 많을텐데..? 그럴때 마다 실행된다는 건가?

그래서 Data들의 집합인 Stream을 조작하기 위해서 Operator가 존재한다.

 

오히려 간단해졌다. 우리가 관찰하고 싶은 모든 것들을 Subject로 만들고 특정 조건에서 스트림을 생성하기만 하면된다.해당 데이터 스트림을 쓰고 싶은 객체들은 데이터 스트림을 골라서 빼내어 쓰면 되는 것이다.

 

 

 

내 설명이 틀렸다면 무조건 피드백해줬으면 좋겠다.

 

 

 


참고링크

https://skuld2000.tistory.com/33?category=798469 

728x90
반응형
그리드형