Enviar pesquisa
Carregar
UniRx完全に理解した
•
6 gostaram
•
9,535 visualizações
torisoup
Seguir
2018/12/15 Unity大人のLT大会の発表資料です
Leia menos
Leia mais
Tecnologia
Denunciar
Compartilhar
Denunciar
Compartilhar
1 de 36
Baixar agora
Baixar para ler offline
Recomendados
UniTask入門
UniTask入門
torisoup
未来のプログラミング技術をUnityで -UniRx-
未来のプログラミング技術をUnityで -UniRx-
torisoup
Doozy UI 使おうぜ! #unity_lt
Doozy UI 使おうぜ! #unity_lt
torisoup
Observableで非同期処理
Observableで非同期処理
torisoup
ObserverパターンからはじめるUniRx
ObserverパターンからはじめるUniRx
torisoup
UniRxでMV(R)Pパターンをやってみた
UniRxでMV(R)Pパターンをやってみた
torisoup
若輩エンジニアから見たUniRxを利用したゲーム開発
若輩エンジニアから見たUniRxを利用したゲーム開発
Hirohito Morinaga
Unity開発で使える設計の話+Zenjectの紹介
Unity開発で使える設計の話+Zenjectの紹介
torisoup
Recomendados
UniTask入門
UniTask入門
torisoup
未来のプログラミング技術をUnityで -UniRx-
未来のプログラミング技術をUnityで -UniRx-
torisoup
Doozy UI 使おうぜ! #unity_lt
Doozy UI 使おうぜ! #unity_lt
torisoup
Observableで非同期処理
Observableで非同期処理
torisoup
ObserverパターンからはじめるUniRx
ObserverパターンからはじめるUniRx
torisoup
UniRxでMV(R)Pパターンをやってみた
UniRxでMV(R)Pパターンをやってみた
torisoup
若輩エンジニアから見たUniRxを利用したゲーム開発
若輩エンジニアから見たUniRxを利用したゲーム開発
Hirohito Morinaga
Unity開発で使える設計の話+Zenjectの紹介
Unity開発で使える設計の話+Zenjectの紹介
torisoup
はじめてのUniRx
はじめてのUniRx
torisoup
インタフェース完全に理解した
インタフェース完全に理解した
torisoup
コールバックと戦う話
コールバックと戦う話
torisoup
Unityでパフォーマンスの良いUIを作る為のTips
Unityでパフォーマンスの良いUIを作る為のTips
Unity Technologies Japan K.K.
Unityでオニオンアーキテクチャ
Unityでオニオンアーキテクチャ
torisoup
MagicOnion入門
MagicOnion入門
torisoup
Cinemachineで見下ろし視点のカメラを作る
Cinemachineで見下ろし視点のカメラを作る
Unity Technologies Japan K.K.
MagicOnion~C#でゲームサーバを開発しよう~
MagicOnion~C#でゲームサーバを開発しよう~
torisoup
【Unity】 Behavior TreeでAIを作る
【Unity】 Behavior TreeでAIを作る
torisoup
Unityでオンラインゲーム作った話
Unityでオンラインゲーム作った話
torisoup
【Unite Tokyo 2018】Audio機能の基礎と実装テクニック
【Unite Tokyo 2018】Audio機能の基礎と実装テクニック
UnityTechnologiesJapan002
【Unite Tokyo 2019】Unityだったら簡単!マルチプレイ用ゲームサーバ開発 ~実践編~
【Unite Tokyo 2019】Unityだったら簡単!マルチプレイ用ゲームサーバ開発 ~実践編~
UnityTechnologiesJapan002
猫でも分かるUMG
猫でも分かるUMG
エピック・ゲームズ・ジャパン Epic Games Japan
UniRx の1歩目
UniRx の1歩目
infinite_loop
徹底解説!UE4を使ったモバイルゲーム開発におけるコンテンツアップデートの極意!
徹底解説!UE4を使ったモバイルゲーム開発におけるコンテンツアップデートの極意!
エピック・ゲームズ・ジャパン Epic Games Japan
そう、UE4ならね。あなたのモバイルゲームをより快適にする沢山の冴えたやり方について Part 1 <Shader Compile, PSO Cache編>
そう、UE4ならね。あなたのモバイルゲームをより快適にする沢山の冴えたやり方について Part 1 <Shader Compile, PSO Cache編>
エピック・ゲームズ・ジャパン Epic Games Japan
UE4のためのより良いゲーム設計を理解しよう!
UE4のためのより良いゲーム設計を理解しよう!
Masahiko Nakamura
UnityでUI開発を高速化した件
UnityでUI開発を高速化した件
Grenge, Inc.
【Unity道場】AssetGraph入門 〜ノードを駆使しててUnityの面倒な手作業を自動化する方法〜
【Unity道場】AssetGraph入門 〜ノードを駆使しててUnityの面倒な手作業を自動化する方法〜
Unity Technologies Japan K.K.
【Unite Tokyo 2018】さては非同期だなオメー!async/await完全に理解しよう
【Unite Tokyo 2018】さては非同期だなオメー!async/await完全に理解しよう
Unity Technologies Japan K.K.
Progcamp internet 100801
Progcamp internet 100801
Hiro Yoshioka
Internet and Opensource at Security and Programming camp 2011
Internet and Opensource at Security and Programming camp 2011
Hiro Yoshioka
Mais conteúdo relacionado
Mais procurados
はじめてのUniRx
はじめてのUniRx
torisoup
インタフェース完全に理解した
インタフェース完全に理解した
torisoup
コールバックと戦う話
コールバックと戦う話
torisoup
Unityでパフォーマンスの良いUIを作る為のTips
Unityでパフォーマンスの良いUIを作る為のTips
Unity Technologies Japan K.K.
Unityでオニオンアーキテクチャ
Unityでオニオンアーキテクチャ
torisoup
MagicOnion入門
MagicOnion入門
torisoup
Cinemachineで見下ろし視点のカメラを作る
Cinemachineで見下ろし視点のカメラを作る
Unity Technologies Japan K.K.
MagicOnion~C#でゲームサーバを開発しよう~
MagicOnion~C#でゲームサーバを開発しよう~
torisoup
【Unity】 Behavior TreeでAIを作る
【Unity】 Behavior TreeでAIを作る
torisoup
Unityでオンラインゲーム作った話
Unityでオンラインゲーム作った話
torisoup
【Unite Tokyo 2018】Audio機能の基礎と実装テクニック
【Unite Tokyo 2018】Audio機能の基礎と実装テクニック
UnityTechnologiesJapan002
【Unite Tokyo 2019】Unityだったら簡単!マルチプレイ用ゲームサーバ開発 ~実践編~
【Unite Tokyo 2019】Unityだったら簡単!マルチプレイ用ゲームサーバ開発 ~実践編~
UnityTechnologiesJapan002
猫でも分かるUMG
猫でも分かるUMG
エピック・ゲームズ・ジャパン Epic Games Japan
UniRx の1歩目
UniRx の1歩目
infinite_loop
徹底解説!UE4を使ったモバイルゲーム開発におけるコンテンツアップデートの極意!
徹底解説!UE4を使ったモバイルゲーム開発におけるコンテンツアップデートの極意!
エピック・ゲームズ・ジャパン Epic Games Japan
そう、UE4ならね。あなたのモバイルゲームをより快適にする沢山の冴えたやり方について Part 1 <Shader Compile, PSO Cache編>
そう、UE4ならね。あなたのモバイルゲームをより快適にする沢山の冴えたやり方について Part 1 <Shader Compile, PSO Cache編>
エピック・ゲームズ・ジャパン Epic Games Japan
UE4のためのより良いゲーム設計を理解しよう!
UE4のためのより良いゲーム設計を理解しよう!
Masahiko Nakamura
UnityでUI開発を高速化した件
UnityでUI開発を高速化した件
Grenge, Inc.
【Unity道場】AssetGraph入門 〜ノードを駆使しててUnityの面倒な手作業を自動化する方法〜
【Unity道場】AssetGraph入門 〜ノードを駆使しててUnityの面倒な手作業を自動化する方法〜
Unity Technologies Japan K.K.
【Unite Tokyo 2018】さては非同期だなオメー!async/await完全に理解しよう
【Unite Tokyo 2018】さては非同期だなオメー!async/await完全に理解しよう
Unity Technologies Japan K.K.
Mais procurados
(20)
はじめてのUniRx
はじめてのUniRx
インタフェース完全に理解した
インタフェース完全に理解した
コールバックと戦う話
コールバックと戦う話
Unityでパフォーマンスの良いUIを作る為のTips
Unityでパフォーマンスの良いUIを作る為のTips
Unityでオニオンアーキテクチャ
Unityでオニオンアーキテクチャ
MagicOnion入門
MagicOnion入門
Cinemachineで見下ろし視点のカメラを作る
Cinemachineで見下ろし視点のカメラを作る
MagicOnion~C#でゲームサーバを開発しよう~
MagicOnion~C#でゲームサーバを開発しよう~
【Unity】 Behavior TreeでAIを作る
【Unity】 Behavior TreeでAIを作る
Unityでオンラインゲーム作った話
Unityでオンラインゲーム作った話
【Unite Tokyo 2018】Audio機能の基礎と実装テクニック
【Unite Tokyo 2018】Audio機能の基礎と実装テクニック
【Unite Tokyo 2019】Unityだったら簡単!マルチプレイ用ゲームサーバ開発 ~実践編~
【Unite Tokyo 2019】Unityだったら簡単!マルチプレイ用ゲームサーバ開発 ~実践編~
猫でも分かるUMG
猫でも分かるUMG
UniRx の1歩目
UniRx の1歩目
徹底解説!UE4を使ったモバイルゲーム開発におけるコンテンツアップデートの極意!
徹底解説!UE4を使ったモバイルゲーム開発におけるコンテンツアップデートの極意!
そう、UE4ならね。あなたのモバイルゲームをより快適にする沢山の冴えたやり方について Part 1 <Shader Compile, PSO Cache編>
そう、UE4ならね。あなたのモバイルゲームをより快適にする沢山の冴えたやり方について Part 1 <Shader Compile, PSO Cache編>
UE4のためのより良いゲーム設計を理解しよう!
UE4のためのより良いゲーム設計を理解しよう!
UnityでUI開発を高速化した件
UnityでUI開発を高速化した件
【Unity道場】AssetGraph入門 〜ノードを駆使しててUnityの面倒な手作業を自動化する方法〜
【Unity道場】AssetGraph入門 〜ノードを駆使しててUnityの面倒な手作業を自動化する方法〜
【Unite Tokyo 2018】さては非同期だなオメー!async/await完全に理解しよう
【Unite Tokyo 2018】さては非同期だなオメー!async/await完全に理解しよう
Semelhante a UniRx完全に理解した
Progcamp internet 100801
Progcamp internet 100801
Hiro Yoshioka
Internet and Opensource at Security and Programming camp 2011
Internet and Opensource at Security and Programming camp 2011
Hiro Yoshioka
今日から始めよう UniRx
今日から始めよう UniRx
Yu Takahashi
Unityで使える C# 6.0~と .NET 4.6
Unityで使える C# 6.0~と .NET 4.6
信之 岩永
Opensource and Value creation by community
Opensource and Value creation by community
Hiro Yoshioka
Osc Kobe Slide20100313
Osc Kobe Slide20100313
hyogontech
「アジャイル型開発におけるプラクティス活用リファレンスガイド」の勘所と活用方法
「アジャイル型開発におけるプラクティス活用リファレンスガイド」の勘所と活用方法
toshihiro ichitani
今さら聞けない人のためのDevOps超入門
今さら聞けない人のためのDevOps超入門
VirtualTech Japan Inc./Begi.net Inc.
こんなに使えるTrainer
こんなに使えるTrainer
Yuta Koreeda
楽天の中のわたしと勉強会
楽天の中のわたしと勉強会
Rakuten Group, Inc.
今さら聞けない人のためのDevOps超入門
今さら聞けない人のためのDevOps超入門
VirtualTech Japan Inc./Begi.net Inc.
今さら聞けない人のためのDevOps超入門
今さら聞けない人のためのDevOps超入門
VirtualTech Japan Inc./Begi.net Inc.
【Unity道場 名古屋SP】Unityは難しくない!Asset StoreとPackage Managerの活用術
【Unity道場 名古屋SP】Unityは難しくない!Asset StoreとPackage Managerの活用術
Unity Technologies Japan K.K.
Sapporo Open Seminar 2
Sapporo Open Seminar 2
Hiro Yoshioka
Semelhante a UniRx完全に理解した
(14)
Progcamp internet 100801
Progcamp internet 100801
Internet and Opensource at Security and Programming camp 2011
Internet and Opensource at Security and Programming camp 2011
今日から始めよう UniRx
今日から始めよう UniRx
Unityで使える C# 6.0~と .NET 4.6
Unityで使える C# 6.0~と .NET 4.6
Opensource and Value creation by community
Opensource and Value creation by community
Osc Kobe Slide20100313
Osc Kobe Slide20100313
「アジャイル型開発におけるプラクティス活用リファレンスガイド」の勘所と活用方法
「アジャイル型開発におけるプラクティス活用リファレンスガイド」の勘所と活用方法
今さら聞けない人のためのDevOps超入門
今さら聞けない人のためのDevOps超入門
こんなに使えるTrainer
こんなに使えるTrainer
楽天の中のわたしと勉強会
楽天の中のわたしと勉強会
今さら聞けない人のためのDevOps超入門
今さら聞けない人のためのDevOps超入門
今さら聞けない人のためのDevOps超入門
今さら聞けない人のためのDevOps超入門
【Unity道場 名古屋SP】Unityは難しくない!Asset StoreとPackage Managerの活用術
【Unity道場 名古屋SP】Unityは難しくない!Asset StoreとPackage Managerの活用術
Sapporo Open Seminar 2
Sapporo Open Seminar 2
Mais de torisoup
Unityで作ったゲームをDLカードで配布してみた話 #roppongiunity
Unityで作ったゲームをDLカードで配布してみた話 #roppongiunity
torisoup
ARでVRアバターを表示するシステムを構築しよう
ARでVRアバターを表示するシステムを構築しよう
torisoup
Photon Cloud ことはじめ
Photon Cloud ことはじめ
torisoup
アバター生放送支援アプリ「アバれぽ」
アバター生放送支援アプリ「アバれぽ」
torisoup
UnityとNCMBでユーザ管理を実装してみた話
UnityとNCMBでユーザ管理を実装してみた話
torisoup
Task vs Observable
Task vs Observable
torisoup
UniRxでPUNを使いやすくする
UniRxでPUNを使いやすくする
torisoup
みくみくまうすについて&Unity で使えるコーディングノウハウ
みくみくまうすについて&Unity で使えるコーディングノウハウ
torisoup
Unity講習会(初級)
Unity講習会(初級)
torisoup
Mais de torisoup
(9)
Unityで作ったゲームをDLカードで配布してみた話 #roppongiunity
Unityで作ったゲームをDLカードで配布してみた話 #roppongiunity
ARでVRアバターを表示するシステムを構築しよう
ARでVRアバターを表示するシステムを構築しよう
Photon Cloud ことはじめ
Photon Cloud ことはじめ
アバター生放送支援アプリ「アバれぽ」
アバター生放送支援アプリ「アバれぽ」
UnityとNCMBでユーザ管理を実装してみた話
UnityとNCMBでユーザ管理を実装してみた話
Task vs Observable
Task vs Observable
UniRxでPUNを使いやすくする
UniRxでPUNを使いやすくする
みくみくまうすについて&Unity で使えるコーディングノウハウ
みくみくまうすについて&Unity で使えるコーディングノウハウ
Unity講習会(初級)
Unity講習会(初級)
Último
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
CRI Japan, Inc.
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
Hiroshi Tomioka
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NTT DATA Technology & Innovation
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
iPride Co., Ltd.
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
CRI Japan, Inc.
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
iPride Co., Ltd.
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
iPride Co., Ltd.
Último
(7)
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
UniRx完全に理解した
1.
UniRx完全に理解した 2018/12/15 とりすーぷ
2.
自己紹介 • とりすーぷ(@toRisouP) • 株式会社バーチャルキャスト •
Unityクライアント開発 • 人類を美少女にする仕事をしてます
3.
今回の発表内容 • これのリメイクです • 発表してから3年半経っているのでいいかげんアップデートしたい
4.
おしながき • UniRxって何 • できること •
UniRxを構成する三大要素 • サンプル集 • UniRxの便利機能 • UniTask • おすすめ資料
5.
UniRx is 何 •
Reactive ExtensionsのUnity向け実装 • @neueccさん作、MITライセンスで使えるライブラリ • GitHubまたはUnityAssetStoreから無料で導入可能
6.
何ができるの? • イベント処理の強化 • イベントメッセージの扱いやハンドリングがとても簡単になる •
非同期処理の強化 • コルーチンでは表現しきれない処理を簡単に扱えるようになる • async/awaitの強化 • Unityの非同期系APIをawaitできるようになる
7.
UniRxを構築する三大要素 • Observable • Operator •
Scheduler
8.
Observable • UniRxの中核となる存在 • 非同期的に発行されるイベントをコレクションのように扱う •
イベントストリームとか呼ばれたりもする • 対応するインタフェースはIObservable<T> (文章で書くときは長いのでIO<T>って略すこともある)
9.
イベントメッセージ • Observableは3種類のメッセージを扱える • OnNext •
通常時のメッセージ。何回でも発行できる。型はIO<T>のT • OnCompleted • 正常終了時のメッセージ。1回だけ発行できる。型はUnit • OnError • 異常発生時のメッセージ。1回だけ発行できる。型はException
10.
Operator • Observableのメッセージハンドリングを強化する関数群 • UniRxで一番便利な機能がこれ •
IEnumerable<T>に対する便利関数群がLINQなら、 IObservable<T>に対する便利関数群がOperator
11.
Scheduler • UniRxにおける時間やスレッドの管理を行う存在 • UniRxが時間が絡んだ処理に強いのはSchedulerがいるから •
デフォルトではMainThreadSchedulerが使用される場合が多い
12.
UniRxの使い方 1. Observableの源流を作る(イベントソース) 2. Operatorを繋げて処理を拡張する 3.
OperatorにSchedulerを指定して処理を調整する 4. 2. 3. を繰り返す 5. 末尾でSubscribe()する
13.
おしながき • UniRxって何 • できること •
UniRxを構成する三大要素 • サンプル集 • UniRxの便利機能 • UniTask • おすすめ資料
14.
サンプル集
15.
Update()をObservable化 • Update()のタイミングでイベント発行するObservable • 2通りあるので用途に応じて適切な方を使う
16.
InputイベントをObservable化 • KeyDownをObservable化 • Where
Operatorを使う
17.
連打防止Observable • ThrottoleFirst Operatorを追加 •
最後に発火してから一定時間メッセージを無視するOperator
18.
2度押し検知 • BufferとThrottleの合わせ技 • Buffer
: 指定Observableにメッセージが来るまでメッセージを蓄える • Throttle : メッセージが落ち着いたら最後の1個を流す
19.
コルーチンのObservable化 • コルーチンから結果が取り出せるようになる
20.
ややこしい処理のObservable化 • Zを押している間は1秒間隔だが、Xも同時に押すと0.5秒間隔になる • コルーチンからObservableに変換したほうが楽
21.
非同期処理のリトライ • OnErrorRetry Operator
22.
実行スレッドの切り替え • ObserveOn /
ObserveOnMainThread • 別スレッドに処理を逃したり、メインスレッドに戻したりできる
23.
サンプル集まとめ • ベースになるObservableを用意すれば、 あとはOperatorの連結でなんとかなる • Operatorだけで表現できないときはコルーチンも併用するべき
24.
おしながき • UniRxって何 • できること •
UniRxを構成する三大要素 • サンプル集 • UniRxの便利機能 • UniTask • おすすめ資料
25.
便利機能 • UniRxには便利な機能がいくつかついている • ReactiveProperty •
AsyncOperationAwaiter • ReactiveCommand • ObjectPool • ObservableLogger • MessageBroker
26.
ReactiveProperty • IObservable +
IObserverな変数 • 値を設定するとメッセージが発行される
27.
AsyncOperationAwaiter • AsyncOperationを async/awaitで待てる • コルーチン不要になる
28.
おしながき • UniRxって何 • できること •
UniRxを構成する三大要素 • サンプル集 • UniRxの便利機能 • UniTask • おすすめ資料
29.
UniTask • Unity向けのTask実装 • UniRx同梱 •
C# 7以降に変更すると利用可能になる(Unity 2018.3以降標準) • C#標準Taskと比較して軽量かつUnity向けに最適化されている
30.
UniTaskの作り方 • async/awaitなら返り値をUniTaskにするだけ
31.
UniTaskの作り方 • Func<UniTask>を使う • 評価タイミングで非同期処理が起動するようになる •
非同期処理のキャッシュ機構が作れる
32.
UniTaskの作り方 • UniTaskCompletionSourceを使う • 手続き的に結果を設定できる
33.
UniTaskの付随機能いろいろ • AsyncOperationのConfigureAwait • PlayerLoopの任意のタイミングにスイッチ •
Unityコールバックイベントのawait • スレッドの切り替え • Observableとの相互変換 • キャンセル処理の強化
34.
UniTaskまとめ • C# 7以降でUniRxを使うならUniTaskを基本的に使おう •
素のTaskを使う理由が無い • コルーチンもだいたいasync/awaitに置換できてしまう
35.
全体まとめ • UniRxは現代のUnity開発における必需品 • 標準同梱してほしいレベルでスクリプトが強化される •
Observableと周辺機能を覚えよう • UniTaskとの使い分けもできるようになると良い
36.
おすすめ資料 • neue cc
(UniRx作者のneueccさんのブログ) • http://neue.cc/ • Task vs Observable • https://niconare.nicovideo.jp/watch/kn3081 • Observableで非同期処理 • https://niconare.nicovideo.jp/watch/kn3434 • ObserverパターンからはじめるUniRx • https://niconare.nicovideo.jp/watch/kn3454 • UniRxについて書いた記事をまとめてみた • https://qiita.com/toRisouP/items/48b9fa25df64d3c6a392
Baixar agora