본문 바로가기
Unity 유니티 기초강의

Unity c# UniRx

by 만사오케이프로 2022. 6. 4.
반응형

UniRx란?

UniRx는 'Reactive Extensions for Unity'의 약자로 유니티에서 반응형 프로그래밍을 사용할 수 있게 공개한 라이브러리입니다.

 

 

 

 

많이 사용하는 Unity UniRx 로직


연속 더블터치를 막기위해 0.5f 시간 딜레이 주기

-버튼 클릭시 다음 클릭이 0.5f 이전까지 클릭 무시

public Button agreeButton;    

void Awake()
{
   agreeButton.
     OnClickAsObservable().
     ThrottleFirst(System.TimeSpan.FromSeconds(0.5f)).
     Subscribe(_x =>
     {
     	//실행 코드
     });
 }

 


Msg 받을 곳

브로드케스트 방식으로 리시브가 있는 모든 곳에 보낼수 있다.

public class AAA : MonoBehaviour
{
  public class MSG_Refresh
  {
  	public string msg;
  }

  private void Awake()
  {
    MessageBroker.Default.Receive<MSG_Refresh>()
    .TakeUntilDestroy(this)
    .Subscribe(x =>
    {
    	string MSG = x.msg;      
    });
  }
}          

 

보내는 방법

MessageBroker.Default.Publish(new AAA.MSG_Refresh()
{
  msg = "보낼 메세지"
});

 


코루틴없이 딜레이를 줄수있어 편하다.

 

1초후 딜레이후 실행

Observable.Timer(TimeSpan.FromSeconds(1f)).Subscribe(_ =>
{
		//실행코드
}).AddTo(this);

 

반응형

댓글