환경
- macOS Mojave v10.14.6
- Unity 2019.2.5f1
- Github Desktop
- Rider 2019.2
- UniRx v7.1.0
원문 : https://qiita.com/toRisouP/items/48b9fa25df64d3c6a392
이 포스팅은 원문을 단순히 구글 번역을 하여 정리한 내용입니다. 일본어를 잘하시는 분은 원문을 보시는게 더 좋으실 것 같습니다.
요약
과거에 자신이 쓴 UniRx (Rx 포함)의 포스트 목록을 작성해 보았습니다.
여러분에게 도움이 되면 좋겠다고 생각합니다.
포스트를 쓴 당시와 비교하면 현재는 더 좋은 구현 방법이 있는 포스트도 있습니다.
UniRx 입문 시리즈
과거에 만든 슬라이드
역방향
Rx의 기본 사항
Hot/Cold에 대해
Rx의 까다로운 성격 중 1개인, Observable의 Hot/Cold에 대해서 정리한 것입니다.
UniRx를 중심으로 한 설계를 진행하는 경우 이 성질의 이해는 필수입니다.
기타 Rx 설명
PairWise/Buffer(2,1)에서 끝나는 곳을 Zip과 Skip(1)에서 쓰는 사람이 많다는 인상을 받습니다.
UniRx 기능 소개
Update()를 UniRx로 재 작성
UniRx를 도입하면 가장 먼저 해야 할 것 입니다. Update()의 재 작성 방법에 대해 정리해 보았습니다.
우선 UpdateAsObservable
과 ObserveEveryValueChanged
를 사용하면 좋을 것으로 생각합니다.
코루틴과 함께한 예
UniRx와 코루틴의 조합함으로써 진가를 발휘한다고 해도 과언이 아닙니다.
코루틴과의 조합법에 능숙해 지면 좋을것으로 생각합니다.
기타
- 연속된 OnNext의 최초 값만 흘리는 오퍼레이터 ThrottleFirst
- Subscribe의 Dispose를 GameObject에 연결 시킨다
- .NET 4.6 시대의 Unity에서 UniRx
- [UniRx] ReactiveCommand/AsyncReactiveCommand 대해
- UniRx의 ObjectPool을 이용하는
AddTo는 자주 사용하는 기능이므로 기억해야 합니다.
예제 요약
판정의 개선
솔직히 Raycast를 사용하는게 더 안정적입니다.
코루틴으로 쓰는 것이 복잡하지만 나중에 확장하기 쉽고 좋을지도 모르겠습니다.
PhotonCloud의 활용도를 높이는
- UniRx를 사용하여 Photon Cloud의 RoomList의 업데이트 모니터링
- PhotonCloud 로그인 처리를 UniRx로 동기처리 처럼 쓰기
- [PUN] PhotonCloud 콜백 처리를 UniRx로 지능적으로 쓴다 "PhotonRx"
PhotonRx는 Photon을 사용하기 쉽게 하기 위한 하나의 해결책 인 것 같습니다.
다른 구현 예
- UniRx를 사용하여 동시에 화면에 비친 객체의 수를 세기
- UniRx에서 카운트 다운 타이머를 만들자
- Animator의 Trigger을 Bool을 사용하여 재현하자
- StateMachineBehaviour에서 Animator를 감시하자
- 스크립트 처리 시점을 조작한다
- FPS 카운터
"일단 시도 해 보았다" 정도의 포스트 입니다. 너무 깊게 받아들이지 마세요.