url: https://zenn.dev/ganariya/articles/create-import-package-from-upm
title: "パッケージを自作したうえで Unity Package Manager から git URL でインポートする"
host: zenn.dev
image: https://res.cloudinary.com/zenn/image/upload/s--O8kcjvZ9--/c_fit%2Cg_north_west%2Cl_text:notosansjp-medium.otf_55:%25E3%2583%2591%25E3%2583%2583%25E3%2582%25B1%25E3%2583%25BC%25E3%2582%25B8%25E3%2582%2592%25E8%2587%25AA%25E4%25BD%259C%25E3%2581%2597%25E3%2581%259F%25E3%2581%2586%25E3%2581%2588%25E3%2581%25A7%2520Unity%2520Package%2520Manager%2520%25E3%2581%258B%25E3%2582%2589%2520git%2520URL%2520%25E3%2581%25A7%25E3%2582%25A4%25E3%2583%25B3%25E3%2583%259D%25E3%2583%25BC%25E3%2583%2588%25E3%2581%2599%25E3%2582%258B%2Cw_1010%2Cx_90%2Cy_100/g_south_west%2Cl_text:notosansjp-medium.otf_37:ganyariya%2Cx_203%2Cy_121/g_south_west%2Ch_90%2Cl_fetch:aHR0cHM6Ly9zdG9yYWdlLmdvb2dsZWFwaXMuY29tL3plbm4tdXNlci11cGxvYWQvYXZhdGFyLzM2MTY0YTdlNjYuanBlZw==%2Cr_max%2Cw_90%2Cx_87%2Cy_95/v1627283836/default/og-base-w1200-v2.png?_a=BACAGSGT

方針 2025-11-03

いったん Pending します。 お仕事においてもっと UniRx をつかって「イベントストリーミング」に対して理解を深めたうえで、小さな UniRx = KuriRx を作るのがよさそうです。

そこから 最小限の KuriRx をつくります。

UniRx をインストールする

https://github.com/ganyariya/KuriRx

Imgur

Imgur Imgur

https://github.com/ganyariya/KuriRx/pull/1

InputSystem をレガシーにする

https://qiita.com/KONTA2019/items/219732d07458dd9ebaba

動作検証がおわったら最新に戻す。

記事を頼りに大雑把に作ってみる

https://learning.unity3d.jp/1324/ https://qiita.com/toRisouP/items/2f1643e344c741dd94f8 https://annulusgames.com/blog/unirx-introduction-rx/ https://qiita.com/toRisouP/items/2f1643e344c741dd94f8#iobserver%E3%82%A4%E3%83%B3%E3%82%BF%E3%83%BC%E3%83%95%E3%82%A7%E3%83%BC%E3%82%B9

https://qiita.com/toRisouP/items/af7d32846ab99f493d92

Imgur

            var observer1 = new ObserverPattern_PrintObserver<string>("observer1");
            var observer2 = new ObserverPattern_PrintObserver<string>("observer2");
 
            using var subject = new ObserverPattern_Subject<string>();
            var whereObservable1a = subject.Where(x => x.StartsWith('H'));
            var whereObservable1b = whereObservable1a.Where(x => x.StartsWith('O'));
            var disposable1 = whereObservable1b.Subscribe(observer1);
            disposable1.Dispose();
 
            subject.OnNext("Hello");
 
 

Fetching Data#r5tj

そもそも Reactive Programming って?

url: https://neue.cc/2014/08/23_476.html
title: "neue cc - A Beginners Guide to Reactive Extensions with UniRx"
description: "どうも始めましての人は始めまして、[@neuecc](https://twitter.com/neuecc)といいます。この記事は[Unity アセット真夏の..."
host: neue.cc
url: https://ninjinkun.hatenablog.com/entry/introrxja
title: "【翻訳】あなたが求めていたリアクティブプログラミング入門 - ninjinkun's diary"
description: "original: The introduction to Reactive Programming you've been missing (by @andrestaltz) (translated by @ninjinkun, reviewed by @ma0e) あなたはリアクティブプログラミングと呼ばれる新しい方法が気になっている。 勉強するのは大変で、良い教材がないのでさらに難しい。私が勉強を始めたときは、まずチュートリアルを探した。見つけたのは一握りの実践的なガイドだけ、しかもそれらは表面をなぞっているだけで、リアクティブプログラミングのアーキテクチャ全体像を構築しようとしてはいな…"
host: ninjinkun.hatenablog.com
favicon: https://ninjinkun.hatenablog.com/icon/link
image: https://cdn.image.st-hatena.com/image/scale/9db69713634a5dcf2ec7c7b76b2b7a141fea7747/backend=imagemagick;version=1;width=1300/https%3A%2F%2Fgist.githubusercontent.com%2Fstaltz%2F868e7e9bc2a7b8c1f754%2Fraw%2F49da694b2489f9e7b7276df31a1dcb206179a496%2Fzclickstream.png

時系列に発生したイベントをストリーム(Observable = 観測できるもの)としてあつかいます。 Operator で Observable を別の Observable でラップすることで、ストリームをさらに別のストリームへ変換します。

Observable  
    .EveryUpdate()  
    .Where(_ => Input.GetMouseButtonDown(0))  
    .ThrottleFirst(TimeSpan.FromSeconds(1))  
    .Select(_ => Input.mousePosition)  
    .Subscribe(x => Debug.Log(x))  
    .AddTo(this);