{"id":1450,"date":"2022-07-06T07:38:42","date_gmt":"2022-07-05T22:38:42","guid":{"rendered":"http:\/\/yoonhada.com\/?p=1450"},"modified":"2023-12-26T21:26:44","modified_gmt":"2023-12-26T12:26:44","slug":"unirx-%ec%9e%85%eb%ac%b8-3-%ec%8a%a4%ed%8a%b8%eb%a6%bc-%ec%86%8c%ec%8a%a4%eb%a5%bc-%eb%a7%8c%eb%93%9c%eb%8a%94-%eb%b0%a9%eb%b2%95","status":"publish","type":"post","link":"http:\/\/yoonhada.com\/?p=1450","title":{"rendered":"UniRx \uc785\ubb38 3 &#8211; \uc2a4\ud2b8\ub9bc \uc18c\uc2a4\ub97c \ub9cc\ub4dc\ub294 \ubc29\ubc95"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\"><a href=\"http:\/\/yoonhada.com\/?p=1425\">UniRx \uc785\ubb38 \uc2dc\ub9ac\uc988 \ubaa9\ucc28\ub294 \uc774\ucabd<\/a><\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"0-\uc774\uc804-\ubcf5\uc2b5\">0. \uc774\uc804 \ubcf5\uc2b5<a href=\"https:\/\/tech.lonpeach.com\/2019\/11\/10\/UniRx-Getting-Started-3\/#0-%EC%9D%B4%EC%A0%84-%EB%B3%B5%EC%8A%B5\"><\/a><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">\uc9c0\ub09c\ubc88 OnNext, OnError, OnCompleted \ubc0f IDisposable\uc758 \uc6a9\ub3c4\uc5d0 \ub300\ud574 \uc124\uba85\ud558\uace0 \uc2a4\ud2b8\ub9bc\uc758 \uc218\uba85 \uad00\ub9ac \ubc29\ubc95\uc5d0 \ub300\ud574\uc11c\ub3c4 \uc124\uba85\ud558\uc600\uc2b5\ub2c8\ub2e4.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\uc774\ubc88\uc740 \u201c\uc2a4\ud2b8\ub9bc \uc18c\uc2a4\ub97c \ub9cc\ub4dc\ub294 \ubc95\u201d\uc5d0 \ub300\ud574 \uac04\ub7b5\ud788 \uc124\uba85\ud574 \ub4dc\ub9ac\uace0\uc790 \ud569\ub2c8\ub2e4.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"1-\uc2a4\ud2b8\ub9bc\uc758-\uc18c\uc2a4-\uba54\uc2dc\uc9c0-\uac8c\uc2dc\uc790\ub294\">1. \uc2a4\ud2b8\ub9bc\uc758 \uc18c\uc2a4 (\uba54\uc2dc\uc9c0 \uac8c\uc2dc\uc790)\ub294?<a href=\"https:\/\/tech.lonpeach.com\/2019\/11\/10\/UniRx-Getting-Started-3\/#1-%EC%8A%A4%ED%8A%B8%EB%A6%BC%EC%9D%98-%EC%86%8C%EC%8A%A4-%EB%A9%94%EC%8B%9C%EC%A7%80-%EA%B2%8C%EC%8B%9C%EC%9E%90%EB%8A%94\"><\/a><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">UniRx\uc758 \uc2a4\ud2b8\ub9bc\uc740 \ub2e4\uc74c\uc758 3\uac00\uc9c0\ub85c \uad6c\uc131\ub418\uc5b4 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>\uba54\uc2dc\uc9c0\ub97c \ubc1c\ud589\ud558\ub294 \uc18c\uc2a4\uac00 \ub418\ub294 \uac83 (Subject \ub4f1)<\/li>\n\n\n\n<li>\uba54\uc2dc\uc9c0 \uc804\ud30c\ud558\ub294 \uc624\ud37c\ub808\uc774\ud130 (Where, Select \ub4f1)<\/li>\n\n\n\n<li>\uba54\uc2dc\uc9c0\ub97c \uad6c\ub3c5\ud558\ub294 \uac83 (Subscribe)<\/li>\n<\/ol>\n\n\n\n<p class=\"wp-block-paragraph\">\ud2b9\ud788 UniRx\ub97c \uc0ac\uc6a9\ud55c\uc9c0 \uc5bc\ub9c8 \uc548\ub418\ub294 \uc0ac\ub78c\ub4e4\uc740 \u201c1\u201d\uc758 \uc2a4\ud2b8\ub9bc \uc18c\uc2a4\ub97c \uc900\ube44\ud558\ub294 \ubc29\ubc95\uc744 \uc798 \ubaa8\ub974\uc2e4 \uac83\uc774\ub77c\uace0 \uc0dd\uac01\ud569\ub2c8\ub2e4. \uc774\ubc88\uc5d0\ub294 \uc774 \uc2a4\ud2b8\ub9bc\uc758 \ubc1c\ub2e8\uc774\ub418\ub294 \uc2a4\ud2b8\ub9bc \uc18c\uc2a4\ub97c \ub9cc\ub4dc\ub294 \ubc29\ubc95\uc744 \uc18c\uac1c\ud558\uace0 \uc2f6\uc2b5\ub2c8\ub2e4.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"2-\uc2a4\ud2b8\ub9bc-\uc18c\uc2a4\uac00-\ub420-\uc218-\uc788\ub294-\ubaa9\ub85d\">2. \uc2a4\ud2b8\ub9bc \uc18c\uc2a4\uac00 \ub420 \uc218 \uc788\ub294 \ubaa9\ub85d<a href=\"https:\/\/tech.lonpeach.com\/2019\/11\/10\/UniRx-Getting-Started-3\/#2-%EC%8A%A4%ED%8A%B8%EB%A6%BC-%EC%86%8C%EC%8A%A4%EA%B0%80-%EB%90%A0-%EC%88%98-%EC%9E%88%EB%8A%94-%EB%AA%A9%EB%A1%9D\"><\/a><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">\uc2a4\ud2b8\ub9bc \uc18c\uc2a4\ub97c \uc900\ube44\ud558\ub294 \ubc29\ubc95\uc740 \uc5ec\ub7ec \uac00\uc9c0\uac00 \uc788\uc2b5\ub2c8\ub2e4. UniRx\uc5d0\uc11c \uc81c\uacf5\ud574\uc8fc\ub294 \uc2a4\ud2b8\ub9bc \uc18c\uc2a4\ub97c \uc774\uc6a9\ud574\ub3c4 \uc88b\uc73c\uba70, \uc2a4\uc2a4\ub85c \uc2a4\ud2b8\ub9bc \uc18c\uc2a4\ub97c \ub9cc\ub4e4 \uc218\ub3c4 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">UniRx\ub97c \uc774\uc6a9\ud560 \uacbd\uc6b0 \ub2e4\uc74c\uacfc \uac19\uc740 \ubc29\ubc95\uc758 \uc2a4\ud2b8\ub9bc \uc18c\uc2a4\ub97c \uc81c\uacf5\ud558\uace0 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Subject \uc2dc\ub9ac\uc988\ub97c \uc0ac\uc6a9<\/li>\n\n\n\n<li>ReactiveProperty \uc2dc\ub9ac\uc988\ub97c \uc0ac\uc6a9<\/li>\n\n\n\n<li>\ud329\ud1a0\ub9ac \uba54\uc11c\ub4dc \uc2dc\ub9ac\uc988\ub97c \uc0ac\uc6a9<\/li>\n\n\n\n<li>UniRx.Triggers \uc2dc\ub9ac\uc988\ub97c \uc0ac\uc6a9<\/li>\n\n\n\n<li>\ucf54\ub8e8\ud2f4\uc744 \ubcc0\ud658\ud558\uc5ec \uc0ac\uc6a9<\/li>\n\n\n\n<li>uGUI \uc774\ubca4\ud2b8\ub97c \ubcc0\ud658\ud558\uc5ec \uc0ac\uc6a9<\/li>\n\n\n\n<li>\uae30\ud0c0 UniRx\uc5d0\uc11c \uc900\ube44\ub418\uc5b4 \uc788\ub294 \uac83\uc744 \uc0ac\uc6a9<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">\uac01\uac01 \uc21c\uc11c\ub300\ub85c \uc124\uba85\ud558\uaca0\uc2b5\ub2c8\ub2e4.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"subject-\uc2dc\ub9ac\uc988\">Subject \uc2dc\ub9ac\uc988<a href=\"https:\/\/tech.lonpeach.com\/2019\/11\/10\/UniRx-Getting-Started-3\/#subject-%EC%8B%9C%EB%A6%AC%EC%A6%88\"><\/a><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">\uc81c 1\ud68c\ubd80\ud130 \uc5ec\ub7ec\ubc88 \ub4f1\uc7a5\ud558\uace0 \uc788\ub294&nbsp;<code>Subject<\/code>\uc774\uc9c0\ub9cc, \uc774\uac83\uc744 \uc774\uc6a9\ud558\ub294 \ud328\ud134\uc774 \uac00\uc7a5 \uae30\ubcf8\ud615\uc785\ub2c8\ub2e4.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\uc9c1\uc811 \uc2a4\ud2b8\ub9bc\uc744 \ub9cc\ub4e4\uc5b4 \uc790\uc720\ub86d\uac8c \uc774\ubca4\ud2b8\ub97c \ubc1c\ud589\ud558\uace0 \uc2f6\ub2e4\uace0 \uc0dd\uac01\ud588\uc744\ub54c \uc774&nbsp;<code>Subject<\/code>\ub97c \uc0ac\uc6a9\ud558\uba74 \uc77c\ub2e8\uc740 \ubb38\uc81c \uc5c6\uc744 \uac83\uc785\ub2c8\ub2e4.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\uadf8\ub9ac\uace0 \uc774&nbsp;<code>Subject<\/code>\ub294 \uba87 \uac00\uc9c0 \ud30c\uc0dd\uc774 \uc874\uc7ac\ud558\uace0 \uac01\uac01 \ub2e4\ub978 \ud589\ub3d9\uc744 \ucde8\ud569\ub2c8\ub2e4. \uc6a9\ub3c4\uc5d0 \ub530\ub77c \uc801\uc808\ud55c \uac83\uc744 \uc0ac\uc6a9\ud558\ub294 \uac83\uc774 \uc88b\uc2b5\ub2c8\ub2e4. \uc774\ubc88\uc5d0\ub294 \ud14c\uc774\ube14\ub85c \uac04\ub7b5\ud788 \uc18c\uac1c\ud558\uace0 \uc788\uc9c0\ub9cc, \uac01 Subject\uc758 \uc790\uc138\ud55c \uc124\uba85\uc740 \ub2e4\uc74c\ubc88\uc5d0 \uc124\uba85\ud558\uaca0\uc2b5\ub2c8\ub2e4.<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table><thead><tr><th>Subject<\/th><th>\uae30\ub2a5<\/th><\/tr><\/thead><tbody><tr><td>Subject&nbsp;&lt;T&gt;<\/td><td>OnNext\uac00 \uc2e4\ud589\ub418\uba74 \uac12\uc744 \ubc1c\ud589\ud55c\ub2e4.<\/td><\/tr><tr><td>BehaviourSubject&lt;T&gt;<\/td><td>\ub9c8\uc9c0\ub9c9\uc73c\ub85c \ubc1c\ud589 \ub41c \uac12\uc744 \uce90\uc26c\ud558\uace0 \ub098\uc911\uc5d0 Subscribe \ub420 \ub54c \uadf8 \uce90\uc2dc\ub97c \ubc18\ud658\ud574 \uc900\ub2e4. \ucd08\uae30 \uac12\uc744 \uc124\uc815 \ud560 \uc218\ub3c4 \uc788\ub2e4.<\/td><\/tr><tr><td>ReplaySubject&lt;T&gt;<\/td><td>\uacfc\uac70 \ubaa8\ub4e0 \ubc1c\ud589 \ub41c \uac12\uc744 \uce90\uc26c\ud558\uace0 \ub098\uc911\uc5d0 Subscribe \ub420 \ub54c \uadf8 \uce90\uc2dc\ub97c \ubaa8\ub450 \uc815\ub9ac\ud574 \ubc1c\ud589\ud55c\ub2e4.<\/td><\/tr><tr><td>AsyncSubject&lt;T&gt;<\/td><td>OnNext\ub97c \uc989\uc2dc \ubc1c\ud589\ud558\uc9c0 \uc54a\uace0 \ub0b4\ubd80\uc5d0 \uce90\uc26c\ud558\uace0 OnCompleted\uac00 \uc2e4\ud589 \ub41c \uc2dc\uac04\uc5d0 \ub9c8\uc9c0\ub9c9 OnNext \ud558\ub098\ub9cc \ubc1c\ud589\ud55c\ub2e4. Future \ubc0f Promise \uac19\uc740 \uac83<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">AynscSubject\ub294 \ub9d0 \uadf8\ub300\ub85c Future \ub098 Promise \uac19\uc740 \uac83\uc785\ub2c8\ub2e4. \ube44\ub3d9\uae30 \ucc98\ub9ac\ub97c \ud558\uace0 \uc2f6\uc744\ub54c \uc774\uc6a9\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">[\uc5ed\uc8fc] Future\ub098 Promise\ub294 \ub2e4\ub978 \uc5b8\uc5b4\uc5d0\uc11c \uc874\uc7ac\ud558\ub294 \uac1c\ub150. C++\uc5d0\uc11c std\uc5d0 Future, Promise api\uac00 \ud3ec\ud568\ub418\uc5b4 \uc788\uc5b4 \ud574\ub2f9 \uae30\ub2a5\uc744 \uc774\uc6a9\ud558\uba74 \ube44\ub3d9\uae30 \ucc98\ub9ac\ub97c \uc2e4\ud589\ud560 \uc218 \uc788\ub2e4.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"reactiveproperty-\uc2dc\ub9ac\uc988\">ReactiveProperty \uc2dc\ub9ac\uc988<a href=\"https:\/\/tech.lonpeach.com\/2019\/11\/10\/UniRx-Getting-Started-3\/#reactiveproperty-%EC%8B%9C%EB%A6%AC%EC%A6%88\"><\/a><\/h2>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"reactiveproperty\">ReactiveProperty<a href=\"https:\/\/tech.lonpeach.com\/2019\/11\/10\/UniRx-Getting-Started-3\/#reactiveproperty\"><\/a><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\"><code>ReactiveProperty&lt;T&gt;<\/code>\ub294 \ubcc0\uc218\uc5d0&nbsp;<code>Subject<\/code>\uc758 \uae30\ub2a5\uc744 \ubd99\uc778 \uac83\uc785\ub2c8\ub2e4. (\uad6c\ud604\ub3c4 \uadf8\ub7f0 \ub290\ub08c\uc73c\ub85c \ub418\uc5b4 \uc788\uc2b5\ub2c8\ub2e4.)<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\ubcc0\uc218\ub97c \uc815\uc758\ud558\uae30 \uc27d\uac8c \ub418\uc5b4 \uc788\uace0 \uc54c\uae30 \uc27d\uae30 \ub54c\ubb38\uc5d0,&nbsp;<strong>\ucd08\uc2ec\uc790\uc5d0\uac8c \ucd94\ucc9c<\/strong>&nbsp;\ud569\ub2c8\ub2e4.<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"csharp\" data-enlighter-theme=\"dracula\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\/\/ int\ud615\uc758 ReactiveProperty\nvar rp = new ReactiveProperty&lt;int>(10); \/\/ \ucd08\uae30\uac12 \uc9c0\uc815 \uac00\ub2a5\n\n\/\/ \uc77c\ubc18\uc801\uc73c\ub85c \ub300\uc785\ud558\uac70\ub098 \uac12\uc744 \uc77d\uc744 \uc218 \uc788\ub2e4.\nrp.Value = 20;\nvar currentValue = rp.Value;\n\n\/\/ Subscribe \ud560 \uc218 \uc788\ub2e4. (Subscribe\uc2dc \ud604\uc7ac \uac12\ub3c4 \ubc1c\ud589\ub41c\ub2e4)\nrp.Subscribe(x => Debug.Log(x));\n\n\/\/ \uac12\uc744 \ub2e4\uc2dc \uc124\uc815\ud560\ub54c OnNext \ubc1c\ud589 \ub41c\ub2e4.\nrp.Value = 30;\n<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\uc2e4\ud589\uacb0\uacfc<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">20\n30\n<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\ub610\ud55c ReactiveProperty\ub294 \uc778\uc2a4\ud399\ud130 \ubdf0\uc5d0 \ud45c\uc2dc\ud558\uc5ec \uc774\uc6a9\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. \uc774 \uacbd\uc6b0 \uc81c\ub124\ub9ad \ubc84\uc804\uc774 \uc544\ub2cc, \uac01\uac01\uc758 \ud615\ud0dc\uc758 \uc804\uc6a9 ReactiveProeprtyProperty\ub97c \uc0ac\uc6a9\ud574\uc57c \ud569\ub2c8\ub2e4.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\ub610\ud55c ReactiveProperty\ub294 \ub2e4\uc74c\ubc88\uc5d0 \uc124\uba85\ud560 \uc608\uc815\uc778&nbsp;<strong>MV(R)P \ud328\ud134<\/strong>\uc5d0\uc11c \uadf8 \uc9c4\uac00\ub97c \ubc1c\ud718\ud558\uac8c \ub429\ub2c8\ub2e4. \uadf8\ub54c \uae4c\uc9c0 \ud655\uc2e4\ud558\uac8c \ub9c8\uc2a4\ud130 \ud558\uc138\uc694!<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">using UniRx;\nusing UnityEngine;\n\npublic class TestReactiveProperty : MonoBehaviour\n{\n    \/\/ int\ud615\uc758 ReactiveProperty (\uc778\uc2a4\ud399\ud130 \ubdf0\uc5d0 \ub098\uc624\ub294 \ubc84\uc804) \n    [SerializeField]\n    private IntReactiveProperty playerHealth = new IntReactiveProperty(100);\n    \n    private void Start() => playerHealth.Subscribe(x => Debug.Log(x));\n}\n<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\ub610\ud55c, enum\ub3c4 ReactiveProperty\ud654 \ud574\uc11c \uc778\uc2a4\ud399\ud130 \ubdf0\uc5d0 \ud45c\uc2dc \ud560 \uc218\ub3c4 \uc788\uc9c0\ub9cc, \uc774\ucabd\uc740 \uc880 \ub354 \uc5f0\uad6c\uac00 \ud544\uc694\ud569\ub2c8\ub2e4. \uc5ec\uae30\uc5d0 \ub300\ud574\uc11c\ub294 UniRx\uc758 \uc800\uc7a5 neuecc\uc528\uac00 \ube14\ub85c\uadf8 \ucabd\uc5d0\uc11c \uc124\uba85\ud558\uace0 \uc788\uae30 \ub54c\ubb38\uc5d0 \uadf8 \ucabd\uc744 \ucc38\uace0\ud558\uc2dc\uba74 \uc88b\uc744 \uac83\uc785\ub2c8\ub2e4.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><a href=\"http:\/\/neue.cc\/2015\/04\/13_510.html\">UniRx 4.8-\uacbd\ub7c9 \uc774\ubca4\ud2b8 \ud6c5\uacfc uGUI\uc5f0\uacc4\uc5d0 \uc758\ud55c \ub370\uc774\ud130 \ubc14\uc778\ub529<\/a><\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"reactivecollection\">ReactiveCollection<a href=\"https:\/\/tech.lonpeach.com\/2019\/11\/10\/UniRx-Getting-Started-3\/#reactivecollection\"><\/a><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\"><code>ReactiveCollection&lt;T&gt;<\/code>\ub294 ReactiveProperty\uc640 \uac19\uc740 \uac83\uc774\uba70, \uc0c1\ud0dc\uc758 \ubcc0\ud654\ub97c \uc54c\ub9ac\ub294 \uae30\ub2a5\uc774 \ub0b4\uc7a5\ub41c List&lt;T&gt;&nbsp;\uc785\ub2c8\ub2e4.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">ReactiveCollection\uc740 \ubcf4\ud1b5\uc758 List\ucc98\ub7fc \uc4f8 \uc218 \uc788\ub294 \ub370\ub2e4 \uc0c1\ud0dc\uc758 \ubcc0\ud654\ub97c Subscribe \ud560 \uc218 \uc788\ub3c4\ub85d \ub418\uc5b4 \uc788\uc2b5\ub2c8\ub2e4. \uc900\ube44\ub418\uc5b4 \uc788\ub294 \uc774\ubca4\ud2b8\ub294 \ub2e4\uc74c\uacfc \uac19\uc2b5\ub2c8\ub2e4.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\uc694\uc18c \ucd94\uac00<\/li>\n\n\n\n<li>\uc694\uc18c\uc758 \uc81c\uac70<\/li>\n\n\n\n<li>\uc694\uc18c \uc218\uc758 \ubcc0\ud654<\/li>\n\n\n\n<li>\uc694\uc18c \uc7ac\uc815\uc758<\/li>\n\n\n\n<li>\uc694\uc18c\uc758 \uc774\ub3d9<\/li>\n\n\n\n<li>\ubaa9\ub85d \uc9c0\uc6b0\uae30<\/li>\n<\/ul>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">var collection = new ReactiveCollection&lt;string>();\n\ncollection\n    .ObserveAdd()\n    .Subscribe(x =>\n    {\n        Debug.Log($\"Add [{x.Index}] = {x.Value}\");\n    });\n\ncollection\n    .ObserveRemove()\n    .Subscribe(x =>\n    {\n        Debug.Log($\"Remove [{x.Index}] = {x.Value}\");\n    });\n\ncollection.Add(\"Apple\");\ncollection.Add(\"Baseball\");\ncollection.Add(\"Cherry\");\ncollection.Remove(\"Apple\");\n<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\uc2e4\ud589\uacb0\uacfc<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">Add [0] = Apple\nAdd [1] = Baseball\nAdd [2] = Cherry\nRemove [0] = Apple\n<\/pre>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"reactivedictionaryt1-t2\">ReactiveDictionary&lt;T1, T2&gt;<a href=\"https:\/\/tech.lonpeach.com\/2019\/11\/10\/UniRx-Getting-Started-3\/#reactivedictionaryt1-t2\"><\/a><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">ReactiveDictionary\uc758 Dictionary \ubc84\uc804 \uc785\ub2c8\ub2e4. ReactiveCollection\uacfc \ub300\ubd80\ubd84 \ud589\ub3d9\uc774 \ub3d9\uc77c\ud558\ubbc0\ub85c \uc0dd\ub7b5\ud569\ub2c8\ub2e4.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"\ud329\ud1a0\ub9ac-\uba54\uc11c\ub4dc-\uc2dc\ub9ac\uc988\">\ud329\ud1a0\ub9ac \uba54\uc11c\ub4dc \uc2dc\ub9ac\uc988<a href=\"https:\/\/tech.lonpeach.com\/2019\/11\/10\/UniRx-Getting-Started-3\/#%ED%8C%A9%ED%86%A0%EB%A6%AC-%EB%A9%94%EC%84%9C%EB%93%9C-%EC%8B%9C%EB%A6%AC%EC%A6%88\"><\/a><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">\ud329\ud1a0\ub9ac \uba54\uc11c\ub4dc\ub294 UniRx\uac00 \uc81c\uacf5\ud558\ub294 \uc2a4\ud2b8\ub9bc \uc18c\uc2a4 \uad6c\ucd95 \uba54\uc11c\ub4dc \uad70\uc785\ub2c8\ub2e4.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><code>Subject<\/code>\ub9cc\uc73c\ub85c\ub294 \ud45c\ud604\ud560 \uc218 \uc5c6\ub294 \ubcf5\uc7a1\ud55c \uc2a4\ud2b8\ub9bc\uc744 \uc27d\uac8c \ub9cc\ub4e4 \uc218 \uc788\ub294 \uacbd\uc6b0\uac00 \uc788\uc2b5\ub2c8\ub2e4. Unity\uc5d0\uc11c UniRx\ub97c \uc774\uc6a9\ud558\ub294 \uacbd\uc6b0\ub294 \ud329\ud1a0\ub9ac \uba54\uc11c\ub4dc\ub97c \uc0ac\uc6a9\ud560 \uc218 \uc788\ub294 \uae30\ud68c\ub294 \uadf8\ub9ac \uc5c6\uc744\uc9c0\ub3c4 \ubaa8\ub974\uc9c0\ub9cc, \uc5b4\ub518\uac00\uc5d0\uc11c \ub3c4\uc6c0\uc774 \ub420 \uc218 \uc788\ub2e4\uace0 \uc0dd\uac01\ud558\uae30 \ub54c\ubb38\uc5d0 \uae30\uc5b5\ud558\ub294 \uac83\ub3c4 \uc88b\uc744 \uac83 \uac19\uc2b5\ub2c8\ub2e4.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\uadf8\ub7ec\ub098 \ud329\ud1a0\ub9ac \uba54\uc11c\ub4dc \uc218\uac00 \ub9ce\uae30 \ub54c\ubb38\uc5d0 \uc774\uc6a9 \ube48\ub3c4\uac00 \ub192\uc740 \uac83\ub9cc \uc18c\uac1c \ud558\uaca0\uc2b5\ub2c8\ub2e4.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\ub9cc\uc57d \ubaa8\ub4e0 \ud329\ud1a0\ub9ac \uba54\uc11c\ub4dc \ubc29\ubc95\uc744 \uc54c\uace0 \uc2f6\ub2e4\uba74, ReactiveX\uc758 Operators \ud56d\ubaa9\uc744 \ucc38\uace0\ud558\ub294 \uac83\uc774 \uc88b\uc744 \uac83 \uac19\uc2b5\ub2c8\ub2e4.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><a href=\"http:\/\/reactivex.io\/documentation\/operators.html#creating\">ReactiveX Creating Observables \ud56d\ubaa9<\/a><\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"observablecreate\">Observable.Create<a href=\"https:\/\/tech.lonpeach.com\/2019\/11\/10\/UniRx-Getting-Started-3\/#observablecreate\"><\/a><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\"><code>Observable.Create&lt;T&gt;<\/code>\ub294 \uc790\uc720\ub86d\uac8c \uac12\uc744 \ubc1c\ud589\ud558\ub294 \uc2a4\ud2b8\ub9bc\uc744 \ub9cc\ub4e4 \uc218 \uc788\ub294 \ud329\ud1a0\ub9ac \uba54\uc11c\ub4dc \uc785\ub2c8\ub2e4. \uc608\ub97c \ub4e4\uc5b4, \uc77c\uc815\ud55c \uc808\ucc28\uc5d0 \uc758\ud574 \ucc98\ub9ac \ud638\ucd9c \uaddc\uce59\uc744 \uc774 \ud329\ud1a0\ub9ac \uba54\uc11c\ub4dc \ub0b4\ubd80\uc5d0 \uc740\ud3d0\uc2dc\ucf1c, \uacb0\uacfc\ub9cc\uc744 \uc2a4\ud2b8\ub9bc\uc5d0\uc11c \ucd94\ucd9c\ud558\ub294 \ubc29\ubc95\ub4f1\uc774 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Observable.Create\ub294 \uc778\uc218&nbsp;<code>Func&lt;IObserver&lt;T&gt;, IDisposable&gt;<\/code>(IObserver\ub97c \ubc1b\uace0 IDisposable\ub97c \ubc18\ud658\ud558\ub294 \ub51c\ub9ac\uac8c\uc774\ud2b8)\ub97c \uc778\uc218\uc5d0 \ucde8\ud569\ub2c8\ub2e4. \uc2e4\uc81c\ub85c \uc0ac\uc6a9\ubc95\uc744 \ubcf4\uc5ec\uc8fc\ub294 \uac83\uc774 \uc54c\uae30 \uc26c\uc6b8 \uac70\ub77c\uace0 \uc0dd\uac01 \ub429\ub2c8\ub2e4.<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">Observable.Create&lt;int>(observer =>\n{\n    Debug.Log(\"Start\");\n\n    for (int i = 0; i &lt;= 100; i += 10)\n    {\n        observer.OnNext(i);\n    }\n\n    Debug.Log(\"Finished\");\n    observer.OnCompleted();\n\n    return Disposable.Create(() =>\n    {\n                \/\/ \uc885\ub8cc\uc2dc \ucc98\ub9ac\n        Debug.Log(\"Dispose\");\n    });\n}).Subscribe(x => Debug.Log(x));\n<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\uc2e4\ud589\uacb0\uacfc<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">Start\n0\n10\n20\n30\n40\n50\n60\n70\n80\n90\n100\nFinished\nDisposable\n<\/pre>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"observablestart\">Observable.Start<a href=\"https:\/\/tech.lonpeach.com\/2019\/11\/10\/UniRx-Getting-Started-3\/#observablestart\"><\/a><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Observable.Start\ub294 \uc8fc\uc5b4\uc9c4 \ube14\ub85d\uc744 \ub2e4\ub978 \uc2a4\ub808\ub4dc\uc5d0\uc11c \uc2e4\ud589\ud558\uc5ec \uacb0\uacfc\ub97c 1\uac1c\ub9cc \ubc1c\uae09\ud558\ub294 \ud329\ud1a0\ub9ac \uba54\uc11c\ub4dc \uc785\ub2c8\ub2e4. \ube44\ub3d9\uae30\ub85c \ubb34\uc5c7\uc778\uac00\ub97c \ucc98\ub9ac\ub97c \ud558\uace0 \uacb0\uacfc\uac00 \ub098\uc624\uba74 \ud1b5\uc9c0\ub97c \uc6d0\ud560\ub54c \uc0ac\uc6a9\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\/\/ \uc8fc\uc5b4\uc9c4 \ube14\ub85d \ub0b4\ubd80\ub97c \ub2e4\ub978 \uc2a4\ub808\ub4dc\uc5d0\uc11c \uc2e4\ud589\nObservable.Start(() =>\n{\n    \/\/ google\uc758 \uba54\uc778 \ud398\uc774\uc9c0\ub97c http\ub97c \ud1b5\ud574 get \ud55c\ub2e4.\n    var req = (HttpWebRequest) WebRequest.Create(\"https:\/\/google.com\");\n    var res = (HttpWebResponse) req.GetResponse();\n    using (var reader = new StreamReader(res.GetResponseStream()))\n    {\n        return reader.ReadToEnd();\n    }\n})\n.ObserveOnMainThread() \/\/ \uba54\uc2dc\uc9c0\ub97c \ub2e4\ub978 \uc2a4\ub808\ub4dc\uc5d0\uc11c Unity \uba54\uc778 \uc2a4\ub808\ub4dc\ub85c \uc804\ud658\n.Subscribe(x => Debug.Log(x));<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\ud558\ub098 \uc8fc\uc758\ud560 \uc810\uc774 \uc788\uc2b5\ub2c8\ub2e4.&nbsp;<strong>Observable.Start \ucc98\ub9ac\ub97c \ub2e4\ub978 \uc2a4\ub808\ub4dc\uc5d0\uc11c \uc2e4\ud589\ud558\uace0 \uadf8 \uc4f0\ub808\ub4dc\uc5d0\uc11c \uadf8\ub300\ub85c Subscribe \ub0b4 \ud568\uc218\ub97c \uc2e4\ud589\ud569\ub2c8\ub2e4.<\/strong>&nbsp;\uc774\uac83\uc740 \uc2a4\ub808\ub4dc\ub85c\ubd80\ud130 \uc548\uc804\ud558\uc9c0 \uc54a\uc740 Unity\uc5d0\uc11c \ubb38\uc81c\ub97c \uc77c\uc73c\ud0ac \uc218 \uc788\uc73c\ubbc0\ub85c \uc8fc\uc758\ud574\uc57c \ud569\ub2c8\ub2e4.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\ub9cc\uc57d \uba54\uc2dc\uc9c0\ub97c \ub2e4\ub978 \uc2a4\ub808\ub4dc\uc5d0\uc11c \uba54\uc778 \uc2a4\ub808\ub4dc\ub85c \uc804\ud658\ud558\uace0\uc790 \ud558\ub294 \uacbd\uc6b0&nbsp;<code>ObserveOnMainThread<\/code>\uc758 \uc624\ud37c\ub808\uc774\ud130\ub97c \uc774\uc6a9\ud569\uc2dc\ub2e4. \uc774 \uc624\ud37c\ub808\uc774\ud130\ub97c \ub07c\uc6b0\ub294 \uac83\ub9cc\uc73c\ub85c, \uc774 \uc624\ud37c\ub808\uc774\ud130 \uc774 \ud6c4 Unity \uba54\uc778 \uc2a4\ub808\ub4dc\uc5d0\uc11c \uc2e4\ud589\ub418\ub3c4\ub85d \ubcc0\ud658 \ud569\ub2c8\ub2e4.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"observabletimertimerframe\">Observable.Timer\/TimerFrame<a href=\"https:\/\/tech.lonpeach.com\/2019\/11\/10\/UniRx-Getting-Started-3\/#observabletimertimerframe\"><\/a><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\"><code>Observable.Timer<\/code>\uc740 \uc77c\uc815 \uc2dc\uac04 \ud6c4\uc5d0 \uba54\uc2dc\uc9c0\ub97c \ubc1c\ud589\ud558\ub294 \uac04\ub2e8\ud55c \ud329\ud1a0\ub9ac \uba54\uc11c\ub4dc \uc785\ub2c8\ub2e4.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\uc2e4\uc81c \uc2dc\uac04\uc744 \uc9c0\uc815\ud558\ub294 \uacbd\uc6b0&nbsp;<code>Timer<\/code>\ub97c \uc0ac\uc6a9\ud558\uace0 Unity\uc758 \ud504\ub808\uc784 \uc218\ub85c \uc9c0\uc815\ud558\ub294 \uacbd\uc6b0&nbsp;<code>TimerFrame<\/code>\uc744 \uc774\uc6a9\ud569\uc2dc\ub2e4.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><code>Timer<\/code>,&nbsp;<code>TimerFrame<\/code>\uc740 \uc778\uc218\uc5d0 \ub530\ub77c \ud589\ub3d9\uc774 \ub2ec\ub77c\uc9d1\ub2c8\ub2e4. 1\uac1c \ubc16\uc5d0 \uc9c0\uc815\ud558\uc9c0 \uc54a\uc73c\uba74 OnShot \ub3d9\uc791\uc73c\ub85c \uc885\ub8cc\ud558\uace0 2\uac1c \uc9c0\uc815\ud55c \uacbd\uc6b0 \uc8fc\uae30\uc801\uc73c\ub85c \uba54\uc2dc\uc9c0\ub97c \ubc1c\ud589\ud558\ub294 \ud589\ub3d9\uc785\ub2c8\ub2e4. \ub610\ud55c \uc2a4\ucf00\uc904\ub7ec\ub97c \uc9c0\uc815\ud558\uc5ec \uc2e4\ud589\ud558\ub294 \uc2a4\ub808\ub4dc\ub97c \uc9c0\uc815\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\ub610\ud55c \ube44\uc2b7\ud55c \ud329\ud1a0\ub9ac \uba54\uc11c\ub4dc \uc778&nbsp;<code>Observable.Interval\/IntervalFrame<\/code>\ub3c4 \uc874\uc7ac\ud569\ub2c8\ub2e4. \uc774\uac83\uc740&nbsp;<code>Timer\/TimerFrame<\/code>\uc758 2\uac1c\uc758 \uc778\uc218\ub97c \uc9c0\uc815\ud558\ub294 \uacbd\uc6b0\uc758 \uc0dd\ub7b5 \ubc84\uc804 \uac19\uc740 \uac83\uc73c\ub85c \uc0dd\uac01 \ud558\uc2dc\uba74 \ub429\ub2c8\ub2e4.&nbsp;<code>Interva\/IntervalFrame<\/code>\uc740 \ud0c0\uc774\uba38\ub97c \uc2dc\uc791\ud560 \ub54c\uae4c\uc9c0\uc758 \uc2dc\uac04 (\uccab\ubc88\uc9f8 \uc778\uc218)\ub97c \uc9c0\uc815\ud560 \uc218 \uc5c6\uac8c \ub418\uc5b4 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\/\/ 5\ucd08 \ud6c4\uc5d0 \uba54\uc2dc\uc9c0 \ubc1c\ud589\ud558\uace0 \uc885\ub8cc\nObservable.Timer(TimeSpan.FromSeconds(5))\n    .Subscribe(_ => Debug.Log(\"5\ucd08 \uacbd\uacfc\ud588\uc2b5\ub2c8\ub2e4.\"));\n\n\/\/ 5\ucd08 \ud6c4 \uba54\uc2dc\uc9c0 \ubc1c\ud589 \ud6c4 1\ucd08 \uac04\uaca9\uc73c\ub85c \uacc4\uc18d \ubc1c\ud589\n\/\/ \uc2a4\uc2a4\ub85c \uc815\uc9c0\uc2dc\ud0a4\uc9c0 \uc54a\ub294 \ud55c \uacc4\uc18d \uc6c0\uc9c1\uc778\ub2e4.\nObservable.Timer(TimeSpan.FromSeconds(5), TimeSpan.FromSeconds(1))\n    .Subscribe(_ => Debug.Log(\"\uc8fc\uae30\uc801\uc73c\ub85c \uc218\ud589\ub418\uace0 \uc788\uc2b5\ub2c8\ub2e4.\"))\n    .AddTo(gameObject);\n<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\"><code>Timer<\/code>,&nbsp;<code>TimerFrame<\/code>\uc740 \uc815\uae30\uc801\uc73c\ub85c \uc2e4\ud589\uc744 \ud558\uace0\uc790 \ud560\ub54c\ub294 Dispose\uc758 \uc791\ub3d9\uc744 \uae30\uc5b5\ud574 \uc8fc\uc2dc\uae30 \ubc14\ub78d\ub2c8\ub2e4. \uba48\ucd94\ub294 \uac83\uc744 \uc78a\uc9c0 \uc54a\uace0 \ubc29\uce58\ud558\uba74 \uba54\ubaa8\ub9ac \ub204\uc218\uc640 NullReferenceException\uc758 \uc6d0\uc778\uc774 \ub429\ub2c8\ub2e4.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">[\uc5ed\uc8fc]<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\ud574\ub2f9 \ucf54\ub4dc\uc5d0\uc11c \uc815\uae30\uc801\uc73c\ub85c \ubc1c\uc0dd\ud558\ub294 Timer\uc758 \uacbd\uc6b0 \ub4a4\uc5d0 AddTo \uba54\uc11c\ub4dc\ub97c \ubd99\uc5ec, \uac8c\uc784\uc624\ube0c\uc81d\ud2b8\uac00 \uc81c\uac70 \ub420\ub54c \uc790\ub3d9\uc73c\ub85c Dispose\uac00 \ud638\ucd9c\ub418\uac8c \ub429\ub2c8\ub2e4.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"unirxtriggers-\uc2dc\ub9ac\uc988\">UniRx.Triggers \uc2dc\ub9ac\uc988<a href=\"https:\/\/tech.lonpeach.com\/2019\/11\/10\/UniRx-Getting-Started-3\/#unirxtriggers-%EC%8B%9C%EB%A6%AC%EC%A6%88\"><\/a><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">UniRx.Triggers\ub294&nbsp;<code>using UniRx.Triggers;<\/code>&nbsp;\ub97c \uc0ac\uc6a9\ud558\ub294 \uc2a4\ud2b8\ub9bc \uc18c\uc2a4\uc785\ub2c8\ub2e4. Unity \ucf5c\ubc31 \uc774\ubca4\ud2b8\ub97c UniRx\uc758 IObservable\ub85c \ubcc0\ud658\ud558\uc5ec \uc81c\uacf5 \ud574\uc8fc\uace0 \uc788\uc2b5\ub2c8\ub2e4.&nbsp;<strong>UniRx\uc5d0\uc11c\ub294 \uc774\uac83\uc774 \uac00\uc7a5 \uc911\uc694\ud558\uace0 \uc720\uc6a9\ud558\ub2e4\uace0 \uc0dd\uac01\ud569\ub2c8\ub2e4.<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Triggers\ub294 \uc218\uac00 \ub9e4\uc6b0 \ub9ce\uae30 \ub54c\ubb38\uc5d0 \ub2e4 \uc18c\uac1c \ud560\uc218 \uc5c6\uc73c\ubbc0\ub85c, GitHub\uc758 wiki\ub97c \ucc38\uace0\ud558\uc2ed\uc2dc\uc624.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><a href=\"https:\/\/github.com\/neuecc\/UniRx\/wiki\/UniRx.Triggers\">GitHub &#8211; UniRx.Triggers<\/a><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Unity\uac00 \uc81c\uacf5\ud558\ub294 \ub300\ubd80\ubd84\uc758 \ucf5c\ubc31 \uc774\ubca4\ud2b8\ub97c \uc2a4\ud2b8\ub9bc\uc73c\ub85c\uc368 \ucde8\ub4dd \uac00\ub2a5\ud558\uac8c \ub418\uc5b4 \uc788\uc73c\uba70&nbsp;<strong>GameObject\uac00 Destroy \ub420\ub54c \uc790\ub3d9\uc73c\ub85c OnCompleted\ub97c \ubc1c\uae09<\/strong>&nbsp;\ud574\uc8fc\ub294 \uad6c\uc870\ub85c \ub418\uc5b4 \uc788\uae30 \ub54c\ubb38\uc5d0, \uc218\uba85 \uad00\ub9ac\ub3c4 \uac71\uc815 \uc5c6\uc2b5\ub2c8\ub2e4.<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">using UniRx;\nusing UnityEngine;\nusing UniRx.Triggers; \/\/ \ud544\uc218 \ucd94\uac00\n\n\/\/ &lt;summary>\n\/\/ WarpZone (\ub77c\ub294 \uc774\ub984\uc758 IsTrigger\uc778 Collider\uac00 \ubd99\uc740 \uc601\uc5ed)\uc5d0\n\/\/ \ub4e4\uc5b4\uc654\uc744\ub54c \ubd80\uc720\ud558\ub294 \uc2a4\ud06c\ub9bc\ud2b8 (\uc784\uc758)\n\/\/ &lt;\/summary>\npublic class TriggersSample : MonoBehaviour\n{\n    private void Start()\n    {\n        bool isForceEnabled = true;\n        var rb = GetComponent&lt;Rigidbody>();\n\n                \/\/ \ud50c\ub798\uadf8\uac00 \uc720\uc694\ud55c \ub3d9\uc548 \uc704\ucabd\uc5d0 \ud798\uc744 \uac00\ud55c\ub2e4.\n        this.FixedUpdateAsObservable()\n            .Where(_ => isForceEnabled)\n            .Subscribe(_ => rb.AddForce(Vector3.up * 20));\n\n                \/\/ WarpZone\uc5d0 \uce68\uc785\ud558\uba74 \ud50c\ub798\uadf8\ub97c \ud65c\uc131\ud654 \ud55c\ub2e4.\n        this.OnTriggerEnterAsObservable()\n            .Where(x => x.gameObject.CompareTag(\"WarpZone\"))\n            .Subscribe(_ => isForceEnabled = true);\n        \n                \/\/ WarpZone\uc5d0 \ub098\uc624\uba74 \ud50c\ub798\uadf8\ub97c \ud574\uc81c \ud55c\ub2e4.\n        this.OnTriggerExitAsObservable()\n            .Where(x => x.gameObject.CompareTag(\"WarpZone\"))\n            .Subscribe(_ => isForceEnabled = false);\n    }\n}<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Triggers\ub97c \uc0ac\uc6a9\ud558\uc5ec Unity \ucf5c\ubc31\uc744 \uc2a4\ud2b8\ub9bc\uc73c\ub85c \ubcc0\ud658\ud558\uba74 \ubaa8\ub4e0 \uac83\uc744 Awake\/Start\uc5d0 \uc791\uc131\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. \uc774\uac83\uc758 \uc774\uc810\uc740 \ub2e4\uc74c \ubc88\uc5d0 \uc790\uc138\ud788 \uc124\uba85\ud558\uaca0\uc2b5\ub2c8\ub2e4.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"\ucf54\ub8e8\ud2f4\uc5d0\uc11c-\ubcc0\ud658\">\ucf54\ub8e8\ud2f4\uc5d0\uc11c \ubcc0\ud658<a href=\"https:\/\/tech.lonpeach.com\/2019\/11\/10\/UniRx-Getting-Started-3\/#%EC%BD%94%EB%A3%A8%ED%8B%B4%EC%97%90%EC%84%9C-%EB%B3%80%ED%99%98\"><\/a><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">\uc0ac\uc2e4 Unity\uc758 \ucf54\ub8e8\ud2f4\uacfc UniRx\ub294 \uc544\uc8fc \uad81\ud569\uc774 \uc798 \ub9de\uc2b5\ub2c8\ub2e4. IObservable \ubc0f \ucf54\ub8e8\ud2f4\uc740 \uc11c\ub85c \ubcc0\ud658\ud558\uc5ec \uc774\uc6a9\ud558\ub294 \uac83\uc774 \uac00\ub2a5 \ud569\ub2c8\ub2e4.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\ucf54\ub8e8\ud2f4\uc5d0\uc11c IObservable\uc758 \ubcc0\ud658\uc740&nbsp;<code>Observable.FromCoroutine<\/code>\uc744 \uc774\uc6a9\ud558\uc5ec \uc218\ud589 \ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. \uc624\ud37c\ub808\uc774\ud130 \uccb4\uc778\uc73c\ub85c \ubcf5\uc7a1\ud55c \uc2a4\ud2b8\ub9bc\uc744 \uad6c\ucd95\ud558\ub294 \uac83\ubcf4\ub2e4 \ucf54\ub8e8\ud2f4\uc744 \uc0ac\uc6a9\ud574 \uc808\ucc28\uc801\uc73c\ub85c \uc4f0\ub294 \uacbd\uc6b0\uac00 \ub354 \uc2ec\ud50c\ud558\uace0 \uc54c\uae30 \uc26c\uc6b4 \uacbd\uc6b0\ub3c4 \uc874\uc7ac \ud569\ub2c8\ub2e4. \ucf54\ub8e8\ud2f4\uc740 \uc545\uc73c\ub85c \ub2e8\uc815\uc9d3\uc9c0 \ub9d0\uace0 \ucc28\ub77c\ub9ac \ucf54\ub8e8\ud2f4\uacfc UniRx\ub97c \ud568\uaed8 \uc0ac\uc6a9\ud558\ub294 \uac83\uc774 \ud3b8\ub9ac\ud558\ub2e4\ub294 \uac83\uc744 \uae30\uc5b5\ud558\uc138\uc694.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">UniRx\uc640 \ucf54\ub8e8\ud2f4\uc758 \uacb0\ud569\uc5d0 \ub300\ud55c \uc124\uba85\uc740 \ub2e4\uc74c\ubc88\uc5d0 \uc790\uc138\ud788 \uc124\uba85\ud558\uaca0\uc2b5\ub2c8\ub2e4. \uc774\ubc88\uc5d0\ub294 \uac04\ub2e8\ud55c \uc608\uc81c\ub9cc \uc18c\uac1c\ud558\ub294 \uac83\uc73c\ub85c \ub9c8\uce58\uaca0\uc2b5\ub2c8\ub2e4.<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">using System;\nusing System.Collections;\nusing UniRx;\nusing UnityEngine;\n\npublic class Example23_Timer : MonoBehaviour\n{\n    \/\/ &lt;summary>\n    \/\/ \uc77c\uc2dc \uc815\uc9c0 \ud50c\ub798\uadf8\n    \/\/ &lt;\/summary>\n    public bool IsPaused { get; private set; }\n    \n    private void Start()\n    {\n        \/\/ 60\ucd08 \uce74\uc6b4\ud2b8\ud558\ub294 \uc2a4\ud2b8\ub9bc\uc744 \ucf54\ub8e8\ud2f4\uc5d0\uc11c \ub9cc\ub4e0\ub2e4.\n        Observable.FromCoroutine&lt;int>(observer => TimerCoroutine(observer, 60))\n            .Subscribe(t => Debug.Log(t));\n    }\n\n    \/\/ &lt;summary>\n    \/\/ \ucd08\uae30 \uac12\uc5d0\uc11c 0\uae4c\uc9c0 \uce74\uc6b4\ud2b8\ud558\ub294 \ucf54\ub8e8\ud2f4\n    \/\/ \uadf8\ub7ec\ub098 IsPaused \ud50c\ub798\uadf8\uac00 \uc720\uc694\ud55c \uacbd\uc6b0\ub294 \uce74\uc6b4\ud2b8 \uc911\uc9c0\n    \/\/ &lt;\/summary>\n    IEnumerator TimerCoroutine(IObserver&lt;int> observer, int initializeTime)\n    {\n        var current = initializeTime;\n        while (current > 0)\n        {\n            if (!IsPaused)\n            {\n                observer.OnNext(current--);\n            }\n            yield return new WaitForSeconds(1);\n        }\n                observer.OnNext(0);\n        observer.OnCompleted();\n    }\n}<\/pre>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"ugui-\uc774\ubca4\ud2b8\uc5d0\uc11c-\ubcc0\ud658\">uGUI \uc774\ubca4\ud2b8\uc5d0\uc11c \ubcc0\ud658<a href=\"https:\/\/tech.lonpeach.com\/2019\/11\/10\/UniRx-Getting-Started-3\/#ugui-%EC%9D%B4%EB%B2%A4%ED%8A%B8%EC%97%90%EC%84%9C-%EB%B3%80%ED%99%98\"><\/a><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">UniRx\ub294 uGUI\uc640\ub3c4 \uad81\ud569\uc774 \uc88b\uace0, ReactiveProperty\uc640 \uacb0\ud569\ud558\uc5ec View\uc640 Model\uc758 \uad00\uacc4\ub97c \uad49\uc7a5\ud788 \uba85\ud655\ud558\uac8c \uad6c\ud604\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. (MV(R)P \ud328\ud134\uc774\ub77c\uace0 \ubd88\ub9bd\ub2c8\ub2e4.)<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\uc774\ubc88\uc5d0\ub294 MV(R)P \ud328\ud134\uc740 \uc124\uba85 \ud558\uc9c0 \uc54a\uace0 uGUI \uc774\ubca4\ud2b8\uc5d0\uc11c \ubcc0\ud658\ud558\ub294 \ubc29\ubc95\ub9cc \uc18c\uac1c \ud558\uaca0\uc2b5\ub2c8\ub2e4.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\ub77c\uace0 \ud574\ub3c4 \ud06c\uac8c \uc18c\uac1c\ud560 \uac83\uc740 \uc5c6\uace0, UniRx\ub97c using\ud558\uace0 \uc788\uc73c\uba74 uGUI \ucef4\ud3ec\ub10c\ud2b8\uc758 uGUI \uc774\ubca4\ud2b8\ub85c\uc11c \uadf8\ub300\ub85c \uc0ac\uc6a9\ud560 \uc218 \uc788\ub3c4\ub85d \ub418\uc5b4 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">using UniRx;\nusing UnityEngine;\nusing UnityEngine.UI;\n\npublic class Example23_uGUI : MonoBehaviour\n{\n    \/\/ \uc778\uc2a4\ud399\ud130\uc5d0\uc11c \uc124\uc815\n    [SerializeField] private Button button; \n    [SerializeField] private InputField inputField;\n    [SerializeField] private Slider slider;\n    \n    private void Start()\n    {\n        \/\/ uGUI\uc758 \uae30\ubcf8 Unity \uc774\ubca4\ud2b8\uc758 \uc774\ub984\uc744 \ud55c Observable\uc774 \uc900\ube44\ub418\uc5b4 \uc788\ub2e4.\n        button.OnClickAsObservable().Subscribe(_ =>\n        {\n            Debug.Log(\"button OnClick!\");\n        });\n\n        inputField.OnValueChangedAsObservable().Subscribe(str =>\n        {\n            Debug.Log(\"inputField OnValueChanged : \" + str);\n        });\n        inputField.OnEndEditAsObservable().Subscribe(str =>\n        {\n            Debug.Log(\"inputField OnEndEdit : \" + str);\n        });\n\n        slider.OnValueChangedAsObservable().Subscribe(val =>\n        {\n            Debug.Log(\"slider value changed : \" + val);\n        });\n        \n        \/\/ ----------\n        \n        \/\/ \ub610\ud55c \uc774\ub7ec\ud55c \ubc29\ubc95\ub3c4 \uc788\ub2e4.\n        inputField.onValueChanged.AsObservable().Subscribe();\n        \n        \/\/ \uc774 \ub450 \uae30\ubc95\uc758 \ucc28\uc774\ub294 Subscribe\uc2dc \ud604\uc7ac \uac12\uc758 \ucd08\uae30 \uac12\uc758 \ubc1c\ud589 \uc5ec\ubd80\uc774\ub2e4\n        \/\/ Subscribe\uc2dc \ucd08\uae30 \uac12\uc774 \ud544\uc694\ud55c \uacbd\uc6b0\ub294 \uc804\uc790\ub97c \uc0ac\uc6a9\ud558\uba74 \ub41c\ub2e4.\n        inputField.OnValueChangedAsObservable(); \/\/ \ucd08\uae30\uac12\uc774 \uc788\ub2e4.\n        inputField.onValueChanged.AsObservable(); \/\/ \ucd08\uae30\uac12\uc774 \uc5c6\ub2e4.\n    }\n}<\/pre>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"\uae30\ud0c0\">\uae30\ud0c0<a href=\"https:\/\/tech.lonpeach.com\/2019\/11\/10\/UniRx-Getting-Started-3\/#%EA%B8%B0%ED%83%80\"><\/a><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">UniRx\ub294 \uc774\uc678\uc5d0\ub3c4 \ud3b8\ub9ac\ud55c \uc2a4\ud2b8\ub9bc \uc18c\uc2a4\ub97c \uc81c\uacf5 \ud574\uc8fc\uace0 \uc788\uc2b5\ub2c8\ub2e4. \uadf8 \uc911 \uc77c\ubd80\ub97c \uc18c\uac1c\ud558\uaca0\uc2b5\ub2c8\ub2e4.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"observablewww\">ObservableWWW<a href=\"https:\/\/tech.lonpeach.com\/2019\/11\/10\/UniRx-Getting-Started-3\/#observablewww\"><\/a><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\"><code>ObservableWWW<\/code>\ub294 Unity\uc758&nbsp;<code>WWW<\/code>\ub97c \uc2a4\ud2b8\ub9bc\uc73c\ub85c \ucc98\ub9ac \ud560 \uc218 \uc788\ub3c4\ub85d \ub798\ud551 \ud574 \uc900 \uac83\uc785\ub2c8\ub2e4. \ud638\ucd9c\ud558\ub294 \uac83\uc73c\ub85c UniRx\ub294 \ucf54\ub8e8\ud2f4\uc744 \uc2e4\ud589\ud574 WWW\ub97c \ucc98\ub9ac\ud558\uace0 \uacb0\uacfc\ub9cc \uc54c\ub824\uc90d\ub2c8\ub2e4.<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">ObservableWWW.Get(\"https:\/\/google.com\")\n            .Subscribe(x => Debug.Log(x));\n<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">(UniRx\ub294 \ub0b4\ubd80\uc5d0 \ucf54\ub8e8\ud2f4\uc744 \uac00\uc9c0\uace0 \uc788\uc2b5\ub2c8\ub2e4. \uadf8 \uc2e4\uccb4\uac00 \ub418\ub294 GameObject\ub294 MainThreadDispacher \ub77c\ub294 \uc774\ub984\uc73c\ub85c \uc52c\uc5d0 \uc874\uc7ac\ud569\ub2c8\ub2e4. \uc774 MainThreadDispatcher\ub97c \uba48\ucd94\uba74 UniRx\uac00 \uc62c\ubc14\ub974\uac8c \ub3d9\uc791\ud558\uc9c0 \uc54a\uac8c \ub418\ubbc0\ub85c \uc774 GameObject\ub97c \uc190\ubcf4\ub294 \uac83\uc740 \ud53c\ud558\ub294 \uac83\uc774 \ud604\uba85\ud569\ub2c8\ub2e4.)<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">[\uc5ed\uc8fc]<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Unity 2018.3 \uc774\uc0c1 \ubc84\uc804\ubd80\ud130\ub294 ObservableWWW\uc758 \uc0ac\uc6a9\uc744 \ud558\uc9c0 \uc54a\ub294 \uac83\uc744 \uad8c\uc7a5\ud558\uace0 \uc788\uc2b5\ub2c8\ub2e4. \uadf8 \ub300\uc2e0\uc5d0 \uc720\ub2c8\ud2f0\uc5d0 \uc0c8\ub85c \ucd94\uac00\ub41c&nbsp;<a href=\"https:\/\/docs.unity3d.com\/ScriptReference\/Networking.UnityWebRequest.html\">UnityWebReques<\/a>t\ub97c \uc0ac\uc6a9\ud558\ub77c\uace0 \uad8c\uc7a5\ud558\uace0 \uc788\uc2b5\ub2c8\ub2e4. \uc2e4\uc81c \ud3b8\uc548\ud55c \uc0ac\uc6a9\uc744 \uc704\ud574\uc11c\ub294&nbsp;<a href=\"https:\/\/github.com\/Cysharp\/UniTask\">UniTask<\/a>&nbsp;\ub77c\uc774\ube0c\ub7ec\ub9ac\uc640 \uac19\uc774 \uc0ac\uc6a9\ud574 C#\uc758 Task \ucc98\ub7fc \uc0ac\uc6a9\uc744 \ud558\uac70\ub098 Task\ub97c Observable\ub85c \ubcc0\ud658\ud558\uc5ec \uc0ac\uc6a9\ud558\uba74 \ub420 \uac83\uc73c\ub85c \ubcf4\uc778\ub2e4. \uc790\uc138\ud55c \ub0b4\uc6a9\uc740&nbsp;<a href=\"https:\/\/qiita.com\/toRisouP\/items\/4445b6b9bf00e49eb147\">UniRx.Async<\/a>\ub97c \ucc38\uace0<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"observablenextframe\">Observable.NextFrame<a href=\"https:\/\/tech.lonpeach.com\/2019\/11\/10\/UniRx-Getting-Started-3\/#observablenextframe\"><\/a><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">\uc774\ub984 \uadf8\ub300\ub85c \ub2e4\uc74c \ud504\ub808\uc784\uc73c\ub85c \uba54\uc2dc\uc9c0\ub97c \ubc1c\ud589 \ud574\uc8fc\ub294 \uc2a4\ud2b8\ub9bc\uc744 \ub9cc\ub4e4 \uc218 \uc788\uc2b5\ub2c8\ub2e4.&nbsp;<strong>\uba54\uc2dc\uc9c0\uc758 \ubc1c\ud589 \ud0c0\uc774\ubc0d\uc740 Update\uac00 \ud0c0\uc774\ubc0d\uc774 \uc544\ub2cc \ucf54\ub8e8\ud2f4 \ud0c0\uc774\ubc0d \uc774\ubbc0\ub85c<\/strong>, \uc2e4\ud589 \ud0c0\uc774\ubc0d\uc774 \ub9e4\uc6b0 \uc911\uc694\ud55c \uacbd\uc6b0\uc5d0\ub294 \uc8fc\uc758\uac00 \ud544\uc694\ud569\ub2c8\ub2e4.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\ucc38\uace0 :&nbsp;<a href=\"https:\/\/docs.unity3d.com\/kr\/current\/Manual\/ExecutionOrder.html\">Unity \ubb38\uc11c \uc774\ubca4\ud2b8 \ud568\uc218\uc758 \uc2e4\ud589 \uc21c\uc11c<\/a><\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">Observable.NextFrame()\n        .Subscribe(_ => Debug.Log(\"\ub2e4\uc74c \ud504\ub808\uc784\uc5d0\uc11c \uc2e4\ud589\ub429\ub2c8\ub2e4.\"));\n<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">[\uc5ed\uc8fc] \uc5c5\ub370\uc774\ud2b8 \ud0c0\uc774\ubc0d\uc740 \ub2e4\uc74c 3\uac00\uc9c0\ub85c \uc870\uc808 \uac00\ub2a5\ud558\uba70, \uae30\ubcf8 \uac12\uc740 Update \uc774\ub2e4.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Update (yield return null)<\/li>\n\n\n\n<li>FixedUpdate (yield return new WaitForFixedUpdate())<\/li>\n\n\n\n<li>EndOfFrame (yield return new WaitForEndOfFrame())<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"observableeveryupdate\">Observable.EveryUpdate<a href=\"https:\/\/tech.lonpeach.com\/2019\/11\/10\/UniRx-Getting-Started-3\/#observableeveryupdate\"><\/a><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\"><code>Observable.EveryUpdate<\/code>\ub294 \ub9e4 Update \ud0c0\uc774\ubc0d\uc744 \uc54c\ub824\uc8fc\ub294 \uc2a4\ud2b8\ub9bc \uc18c\uc2a4 \uc785\ub2c8\ub2e4. UniRx.Triggers\uc758 UpdateAsObservable \uacfc \ube44\uc2b7\ud558\uc9c0\ub9cc \uc774\ucabd\uc740 GameObject\uc5d0 \ubd99\uc5b4 Destroy\uc2dc OnCompleted\uac00 \uc2e4\ud589\ub418\ub294 \ubc18\uba74&nbsp;<code>Observable.EveryUpdate<\/code>\ub294&nbsp;<strong>\uc2a4\uc2a4\ub85c \uc911\uc9c0\ud558\uc9c0 \uc54a\ub294 \ud55c \uc52c\uc744 \uac70\uccd0\ub3c4 \uacc4\uc18d \uc6c0\uc9c1\uc774\ub294 \uc2a4\ud2b8\ub9bc<\/strong>&nbsp;\uc785\ub2c8\ub2e4. FPS \uce74\uc6b4\ud130\uc640 \uac19\uc740 \uc5b4\ub5a4 \uc52c\uc5d0\uc11c\ub3c4 \uacc4\uc18d \uac19\uc740 \uc2a4\ud2b8\ub9bc\uc744 \uad6c\ucd95\ud574\uc57c \ub420\ub54c \uc0ac\uc6a9\ud558\uba74 \uc88b\uc2b5\ub2c8\ub2e4.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"observableeveryvaluechanged\">ObservableEveryValueChanged<a href=\"https:\/\/tech.lonpeach.com\/2019\/11\/10\/UniRx-Getting-Started-3\/#observableeveryvaluechanged\"><\/a><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">ObservableEveryValueChanged\ub294 \uc2a4\ud2b8\ub9bc \uc18c\uc2a4 \uc911\uc5d0\uc11c\ub3c4 \uc774\uc0c9\uc801\uc778 \uc874\uc7ac\uc774\uba70, class \uadf8 \uc790\uccb4(?)\uc758 \ud655\uc7a5 \uba54\uc11c\ub4dc\ub85c \uc815\uc758\ub418\uc5b4 \uc788\uc2b5\ub2c8\ub2e4. \uae30\ub2a5\uc73c\ub85c\ub294&nbsp;<strong>\ubaa8\ub4e0 \uac1d\uccb4\uc758 \ud30c\ub77c\ubbf8\ud130\ub97c \ub9e4 \ud504\ub808\uc784 \ubaa8\ub2c8\ud130\ub9c1\ud558\uace0 \ubcc0\ud654\uac00 \uc788\uc5c8\uc744 \ub54c\uc5d0 \ud1b5\uc9c0\ud558\ub294<\/strong>&nbsp;\uc2a4\ud2b8\ub9bc\uc744 \uc0dd\uc131 \ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">var characterController = GetComponent&lt;CharacterController>();\n        \n\/\/ CharacterController\uc758 isGrounded\ub97c \uac10\uc2dc\n\/\/ false -> true\uac00 \ub418\uba74 \ub85c\uadf8 \ucd9c\ub825\ncharacterController\n    .ObserveEveryValueChanged(c => c.isGrounded)\n    .Where(x => x)\n    .Subscribe(_ => Debug.Log(\"\ucc29\uc9c0!\"))\n    .AddTo(gameObject);\n\n\/\/ \u2191 \ucf54\ub4dc\ub294 \u2193\uc640 \uac70\uc758 \ub3d9\uc758\uc5b4\nObservable.EveryUpdate()\n    .Select(_ => characterController.isGrounded)\n    .DistinctUntilChanged()\n    .Where(x => x)\n    .Subscribe(_ => Debug.Log(\"\ucc29\uc9c0!\"))\n    .AddTo(gameObject);\n\n\/\/ ObserveEveryValueChanged\ub294\n\/\/ EveryUpdate + Select + DistinctUntilChanged\n\/\/ \uc758 \ucd95\uc57d \ubc84\uc804\uc5d0 \uc18d\ud55c\ub2e4.<\/pre>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"3-\uc815\ub9ac\">3. \uc815\ub9ac<a href=\"https:\/\/tech.lonpeach.com\/2019\/11\/10\/UniRx-Getting-Started-3\/#3-%EC%A0%95%EB%A6%AC\"><\/a><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>\uc2a4\ud2b8\ub9bc \uadfc\uc6d0(\uc18c\uc2a4)\ub97c \ub9cc\ub4dc\ub294 \ubc29\ubc95\uc740 \uc5ec\ub7ec\uac00\uc9c0\uac00 \uc788\ub2e4.<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Subject \uc2dc\ub9ac\uc988\ub97c \uc0ac\uc6a9<\/li>\n\n\n\n<li>ReactiveProperty \uc2dc\ub9ac\uc988\ub97c \uc0ac\uc6a9<\/li>\n\n\n\n<li>\ud329\ud1a0\ub9ac \uba54\uc11c\ub4dc \uc2dc\ub9ac\uc988\ub97c \uc0ac\uc6a9<\/li>\n\n\n\n<li>UniRx.Triggers \uc2dc\ub9ac\uc988\ub97c \uc0ac\uc6a9<\/li>\n\n\n\n<li>\ucf54\ub8e8\ud2f4\uc744 \ubcc0\ud658\ud558\uc5ec \uc0ac\uc6a9<\/li>\n\n\n\n<li>uGUI \uc774\ubca4\ud2b8\ub97c \ubcc0\ud658\ud558\uc5ec \uc0ac\uc6a9<\/li>\n\n\n\n<li>\uae30\ud0c0 UniRx\uc5d0\uc11c \uc900\ube44\ub418\uc5b4 \uc788\ub294 \uac83\uc744 \uc0ac\uc6a9<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">\u201cUniRx.Triggers\u201d, \u201cReactiveProperty\u201d, \u201cuGUI\uc5d0\uc11c \ubcc0\ud658\u201d\uc774 \uac1c\uc778\uc801\uc73c\ub85c \ucd5c\uc6b0\uc120\uc73c\ub85c \uae30\uc5b5\ud574\uc57c \ub420 \uac83\uc774\ub77c\uace0 \uc0dd\uac01\ud569\ub2c8\ub2e4. \uc774 3\uac00\uc9c0\ub9cc \uae30\uc5b5\ud55c\ub2e4\uba74 \uc6b0\uc120 UniRx\ub97c \uc0ac\uc6a9\ud55c \uac1c\ubc1c\uc5d0 80% \uc815\ub3c4\ub294 \uc5b4\ub5bb\uac8c\ub4e0 \ub41c\ub2e4\uace0 \uc0dd\uac01\ud569\ub2c8\ub2e4.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>UniRx \uc785\ubb38 \uc2dc\ub9ac\uc988 \ubaa9\ucc28\ub294 \uc774\ucabd 0. \uc774\uc804 \ubcf5\uc2b5 \uc9c0\ub09c\ubc88 OnNext, OnError, OnCompleted \ubc0f IDisposable\uc758 \uc6a9\ub3c4\uc5d0 \ub300\ud574 \uc124\uba85\ud558\uace0 \uc2a4\ud2b8\ub9bc\uc758 \uc218\uba85 \uad00\ub9ac \ubc29\ubc95\uc5d0 \ub300\ud574\uc11c\ub3c4 \uc124\uba85\ud558\uc600\uc2b5\ub2c8\ub2e4. \uc774\ubc88\uc740 \u201c\uc2a4\ud2b8\ub9bc \uc18c\uc2a4\ub97c \ub9cc\ub4dc\ub294 \ubc95\u201d\uc5d0 \ub300\ud574 \uac04\ub7b5\ud788 \uc124\uba85\ud574 \ub4dc\ub9ac\uace0\uc790 \ud569\ub2c8\ub2e4. 1. \uc2a4\ud2b8\ub9bc\uc758 \uc18c\uc2a4 (\uba54\uc2dc\uc9c0 \uac8c\uc2dc\uc790)\ub294? UniRx\uc758 \uc2a4\ud2b8\ub9bc\uc740 \ub2e4\uc74c\uc758 3\uac00\uc9c0\ub85c \uad6c\uc131\ub418\uc5b4 \uc788\uc2b5\ub2c8\ub2e4. \ud2b9\ud788 UniRx\ub97c \uc0ac\uc6a9\ud55c\uc9c0 \uc5bc\ub9c8 \uc548\ub418\ub294 \uc0ac\ub78c\ub4e4\uc740 \u201c1\u201d\uc758 \uc2a4\ud2b8\ub9bc \uc18c\uc2a4\ub97c \uc900\ube44\ud558\ub294 \ubc29\ubc95\uc744 &hellip;<br \/><a href=\"http:\/\/yoonhada.com\/?p=1450\" class=\"more-link pen_button pen_element_default pen_icon_arrow_double\"><span class=\"screen-reader-text\">UniRx \uc785\ubb38 3 &#8211; \uc2a4\ud2b8\ub9bc \uc18c\uc2a4\ub97c \ub9cc\ub4dc\ub294 \ubc29\ubc95<\/span> \ub354\ubcf4\uae30<\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[84,80],"tags":[59,42],"class_list":["post-1450","post","type-post","status-publish","format-standard","hentry","category-architecture","category-project","tag-unirx","tag-unity"],"_links":{"self":[{"href":"http:\/\/yoonhada.com\/index.php?rest_route=\/wp\/v2\/posts\/1450","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/yoonhada.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/yoonhada.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/yoonhada.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/yoonhada.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=1450"}],"version-history":[{"count":9,"href":"http:\/\/yoonhada.com\/index.php?rest_route=\/wp\/v2\/posts\/1450\/revisions"}],"predecessor-version":[{"id":1799,"href":"http:\/\/yoonhada.com\/index.php?rest_route=\/wp\/v2\/posts\/1450\/revisions\/1799"}],"wp:attachment":[{"href":"http:\/\/yoonhada.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=1450"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/yoonhada.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=1450"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/yoonhada.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=1450"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}