Unity/Unity_Unirx

Unirx 사용해보기

CoPractice 2023. 10. 16. 19:04

이전 글에서 Unirx를 사용하는 이유에 대해서 간단히 살펴보았다. 그래서 지금은 직접 Unirx를 사용해 보도록 한다.

 

기본적으로 사용하기위해 데모 프로젝트에 유니티 에셋 스토어에서 Unirx를 다운로드 및 임포트하고 테스트 클래스를 생성합니다. 그리고 아래 using 지시문을 사용한다.

using UniRx;
public class TestDemo : MonoBehaviour
{
    private void Start()
    {
        Subject<string> subject = new Subject<string>();

        subject.Subscribe(str => Debug.Log($"{str} 테스트1"));
        subject.Subscribe(str => Debug.Log($"{str} 테스트2"));
        subject.Subscribe(str => Debug.Log($"{str} 테스트3"));

        subject.OnNext("Unirx-1");
        subject.OnNext("Unirx-2");
    }
}

 

위는 간단하게 만든 테스트 코드이다. 무슨 내용인지는 차츰 살펴보도록하고 결과값을 확인하면 아래와같이 나온다.

 

 

어떻게 사용하는지는 대강 알것같지만 요목조목 따져보도록 한다.

 

Subject<string> subject = new Subject<string>();

Unirx는 하나의 스트림으로 구성되어있는데 Subject는 해당 스트림에서 이벤트를 호출하는 발행자로 볼 수 있다. 

subject.Subscribe(str => Debug.Log($"{str} 테스트1"));

위 발행자에 Subscribe를 사용하여 이벤트를 구독해 줄 수 있다. Subscribe는 LINQ 또는 람다식으로 간편하게 구현이 가능하다.

subject.OnNext("Unirx-1");

마지막으로 OnNext를 사용하여 메시지를 보내어 이벤트를 호출시킨다.

 

위처럼 이벤트를 호출하는 발행자, 이벤트를 구독하는 구독자,  메시지를 수신하는 수진자의 형태로 이루어져 있다.