오늘 다루어볼 주제는. NET용 차세대 Reactive Extensions 라이브러리인 R3에 대해 다루어 보겠습니다. 해당 게시글에서는 기본 시작 가이드 및 R3의 기본 설명에 대해서 다루겠습니다.
다루게 된 계기
R3를 다루게 된 계기로는 최근 많은 프로젝트를 진행하며, 소프트웨어 아키텍처 설계의 필요성을 느끼며, 관심이 많아져, MVVM, MVP, MVC 등 다양한 설계에 대해 알아보던 중 R3가 구현에 많은 도움을 줄 수 있을 것 같아 해당 주제를 다루게 되었습니다.
R3란?
'UniRx'의 개발자 neuecc가 현대적인 C# 환경 (C# 12+)에 최적화하여 새롭게 설계했으며, 기존 Rx의 성능 문제와 구조적 한계를 극복하는 것을 목표로 개발한 라이브러리 입니다. 관련 Github는 아래 링크를 참고하겠습니다.
라이브러리 GitHub 주소 - Cysharp_R3
GitHub - Cysharp/R3: The new future of dotnet/reactive and UniRx.
The new future of dotnet/reactive and UniRx. Contribute to Cysharp/R3 development by creating an account on GitHub.
github.com
Unity 개발자를 위한 가이드
- 프레임 기반 연산 (FrameProvider)
게임 엔진 특화 기능으로, 시간 대신 프레임을 기준으로 작동하는 연산자들을 제공합니다.
Ex) 'IntervalFrame', 'DelayFrame', 'DebounceFrame', 'EveryUpdate()',
'EveryValueChanged()' 등을 통해 프레임 단위의 로직 작성이 매우 간결함.
- Unity Life Cycle 및 타임 스케일 지원
'UnityTimeProvider'를 통해 'FixedUpdate', 'PostLateUpdate' 등 유니티의 특정 업데이트루프를 지정.
'Time.timeScale'의 영향을 받거나 무시하는 설정을 쉽게 적용할 수있음 (유니티 타임 스케일 지원)
- 이벤트 연동 및 수명 관리
AsObservable : UnityEvent를 Observable로 변환할 때 'CancellationToken'을 함께 전달할 수있음.
수명관리 및 자동 해제 : 'this.destroyCancellationToken'을 사용하면 GameObject가 파괴될 때 구독이 안전하게 해제됨.
R3.Triggers : 물리 충돌 (OnCollisionEnter) 등의 메시지를 바로 Observable로 처리할 수 있음.
위 가이드 내용별로 별도의 샘플 혹은 관련내용을 순서대로 다룰 예정이며, 해당 게시글에서는 위 내용을 다룰 수 있다는 내용을 설명하고, 아래에서는 설정 방법에 대하여 다루겠습니다.
Unity 설치 및 설정 방법
- NeGet 설치 (Core)



- Unity 패키지 설치

NuGet을 통해서도 설치가 가능하고, PackageManager에 Github 주소를 직접 입력해서도 설치가 가능합니다.
NuGet은 R3 뿐만 아니라, 다른 패키지를 검색을 통해 설치할 수 있는 기능을 제공하고 있습니다.
다음 게시글에서는 프레임 기반 연산 (FrameProvider)에 대해 직접 작성해 보면서 다루어 보겠습니다.
'Unity' 카테고리의 다른 글
| [라이브러리] R3 Reactive Extensions (Rx) - 2 (0) | 2026.04.23 |
|---|---|
| [디자인 패턴] - 복합체 패턴(Composite) (0) | 2026.03.15 |
| [디자인 패턴] 구조 패턴 - 브리지 패턴 (0) | 2026.01.31 |
| [Unity] Project Auditor (0) | 2025.12.13 |
| [디자인 패턴] 구조 패턴 - 어댑터 패턴 (0) | 2025.12.01 |