Submit Search
Upload
UniRxHandsOnVol1
•
Download as PPTX, PDF
•
4 likes
•
2,886 views
S
Shoji Oshima
Follow
UniRxHandsOnVol1の資料です
Read less
Read more
Engineering
Report
Share
Report
Share
1 of 56
Download now
Recommended
ソーシャルゲームにレコメンドエンジンを導入した話
ソーシャルゲームにレコメンドエンジンを導入した話
Tokoroten Nakayama
プロダクトオーナーが知るべき97のこと
プロダクトオーナーが知るべき97のこと
toshihiro ichitani
Unityネットワーク通信の基盤である「RPC」について、意外と知られていないボトルネックと、その対策法
Unityネットワーク通信の基盤である「RPC」について、意外と知られていないボトルネックと、その対策法
モノビット エンジン
Riderはいいぞ!
Riderはいいぞ!
UnityTechnologiesJapan002
チーム仕事のはじめ方 〜「チームビルド」から「チームマージ」へ
チーム仕事のはじめ方 〜「チームビルド」から「チームマージ」へ
toshihiro ichitani
⼤企業で実現するイマドキの内製開発
⼤企業で実現するイマドキの内製開発
NTT Communications Technology Development
色で失敗しない為に 〜理論に基づく配色フロー〜
色で失敗しない為に 〜理論に基づく配色フロー〜
Yuudai Tachibana
CEDEC2019 大規模モバイルゲーム運用におけるマスタデータ管理事例
CEDEC2019 大規模モバイルゲーム運用におけるマスタデータ管理事例
sairoutine
Recommended
ソーシャルゲームにレコメンドエンジンを導入した話
ソーシャルゲームにレコメンドエンジンを導入した話
Tokoroten Nakayama
プロダクトオーナーが知るべき97のこと
プロダクトオーナーが知るべき97のこと
toshihiro ichitani
Unityネットワーク通信の基盤である「RPC」について、意外と知られていないボトルネックと、その対策法
Unityネットワーク通信の基盤である「RPC」について、意外と知られていないボトルネックと、その対策法
モノビット エンジン
Riderはいいぞ!
Riderはいいぞ!
UnityTechnologiesJapan002
チーム仕事のはじめ方 〜「チームビルド」から「チームマージ」へ
チーム仕事のはじめ方 〜「チームビルド」から「チームマージ」へ
toshihiro ichitani
⼤企業で実現するイマドキの内製開発
⼤企業で実現するイマドキの内製開発
NTT Communications Technology Development
色で失敗しない為に 〜理論に基づく配色フロー〜
色で失敗しない為に 〜理論に基づく配色フロー〜
Yuudai Tachibana
CEDEC2019 大規模モバイルゲーム運用におけるマスタデータ管理事例
CEDEC2019 大規模モバイルゲーム運用におけるマスタデータ管理事例
sairoutine
Game Creators Conference 2019 Takashi Itai
Game Creators Conference 2019 Takashi Itai
Takashi Itai
杉本真樹【インセンティブプレゼンテーション】 Incentive Presentation by Maki Sugimoto MD. August 2014
杉本真樹【インセンティブプレゼンテーション】 Incentive Presentation by Maki Sugimoto MD. August 2014
Maki Sugimoto
そう、UE4ならね。あなたのモバイルゲームをより快適にする沢山の冴えたやり方について Part 2 <Texture Streaming, メモリプロ...
そう、UE4ならね。あなたのモバイルゲームをより快適にする沢山の冴えたやり方について Part 2 <Texture Streaming, メモリプロ...
エピック・ゲームズ・ジャパン Epic Games Japan
任天堂の呪いとナラティブについてバンナム編
任天堂の呪いとナラティブについてバンナム編
Kawamura Yasuhisa
エンジニアから飛んでくるマサカリを受け止める心得
エンジニアから飛んでくるマサカリを受け止める心得
Reimi Kuramochi Chiba
学生時代に知っておきたかったWeb技術の学び方の学び方 | リブセンス
学生時代に知っておきたかったWeb技術の学び方の学び方 | リブセンス
Livesense Inc.
Unity開発で使える設計の話+Zenjectの紹介
Unity開発で使える設計の話+Zenjectの紹介
torisoup
Epic Online Services でできること
Epic Online Services でできること
エピック・ゲームズ・ジャパン Epic Games Japan
自己組織化ゲーム
自己組織化ゲーム
Kiichi Kajiura
UE4における大規模背景制作事例 最適化ワークフロー編
UE4における大規模背景制作事例 最適化ワークフロー編
エピック・ゲームズ・ジャパン Epic Games Japan
Startup Science ①
Startup Science ①
Masa Tadokoro
心理的安全性と、Veinの紹介 Psychological safety and introduction of Vein
心理的安全性と、Veinの紹介 Psychological safety and introduction of Vein
Tokoroten Nakayama
開発速度が速い #とは(LayerX社内資料)
開発速度が速い #とは(LayerX社内資料)
mosa siru
Observableで非同期処理
Observableで非同期処理
torisoup
多機能ボイチャを簡単に導入する方法
多機能ボイチャを簡単に導入する方法
Unity Technologies Japan K.K.
Startup science 2018 4 ビジネスモデルの型とPlanAの作成
Startup science 2018 4 ビジネスモデルの型とPlanAの作成
Masa Tadokoro
4つの戦犯から考えるサービスづくりの失敗
4つの戦犯から考えるサービスづくりの失敗
toshihiro ichitani
インタフェース完全に理解した
インタフェース完全に理解した
torisoup
世界最強のソフトウェアアーキテクト
世界最強のソフトウェアアーキテクト
Yahoo!デベロッパーネットワーク
ドメイン駆動設計をゲーム開発に活かす
ドメイン駆動設計をゲーム開発に活かす
増田 亨
Extreme Management Center を活用したネットワークの見える化
Extreme Management Center を活用したネットワークの見える化
エクストリーム ネットワークス / Extreme Networks Japan
HoloLens参考書読書会 vol9
HoloLens参考書読書会 vol9
Shoji Oshima
More Related Content
What's hot
Game Creators Conference 2019 Takashi Itai
Game Creators Conference 2019 Takashi Itai
Takashi Itai
杉本真樹【インセンティブプレゼンテーション】 Incentive Presentation by Maki Sugimoto MD. August 2014
杉本真樹【インセンティブプレゼンテーション】 Incentive Presentation by Maki Sugimoto MD. August 2014
Maki Sugimoto
そう、UE4ならね。あなたのモバイルゲームをより快適にする沢山の冴えたやり方について Part 2 <Texture Streaming, メモリプロ...
そう、UE4ならね。あなたのモバイルゲームをより快適にする沢山の冴えたやり方について Part 2 <Texture Streaming, メモリプロ...
エピック・ゲームズ・ジャパン Epic Games Japan
任天堂の呪いとナラティブについてバンナム編
任天堂の呪いとナラティブについてバンナム編
Kawamura Yasuhisa
エンジニアから飛んでくるマサカリを受け止める心得
エンジニアから飛んでくるマサカリを受け止める心得
Reimi Kuramochi Chiba
学生時代に知っておきたかったWeb技術の学び方の学び方 | リブセンス
学生時代に知っておきたかったWeb技術の学び方の学び方 | リブセンス
Livesense Inc.
Unity開発で使える設計の話+Zenjectの紹介
Unity開発で使える設計の話+Zenjectの紹介
torisoup
Epic Online Services でできること
Epic Online Services でできること
エピック・ゲームズ・ジャパン Epic Games Japan
自己組織化ゲーム
自己組織化ゲーム
Kiichi Kajiura
UE4における大規模背景制作事例 最適化ワークフロー編
UE4における大規模背景制作事例 最適化ワークフロー編
エピック・ゲームズ・ジャパン Epic Games Japan
Startup Science ①
Startup Science ①
Masa Tadokoro
心理的安全性と、Veinの紹介 Psychological safety and introduction of Vein
心理的安全性と、Veinの紹介 Psychological safety and introduction of Vein
Tokoroten Nakayama
開発速度が速い #とは(LayerX社内資料)
開発速度が速い #とは(LayerX社内資料)
mosa siru
Observableで非同期処理
Observableで非同期処理
torisoup
多機能ボイチャを簡単に導入する方法
多機能ボイチャを簡単に導入する方法
Unity Technologies Japan K.K.
Startup science 2018 4 ビジネスモデルの型とPlanAの作成
Startup science 2018 4 ビジネスモデルの型とPlanAの作成
Masa Tadokoro
4つの戦犯から考えるサービスづくりの失敗
4つの戦犯から考えるサービスづくりの失敗
toshihiro ichitani
インタフェース完全に理解した
インタフェース完全に理解した
torisoup
世界最強のソフトウェアアーキテクト
世界最強のソフトウェアアーキテクト
Yahoo!デベロッパーネットワーク
ドメイン駆動設計をゲーム開発に活かす
ドメイン駆動設計をゲーム開発に活かす
増田 亨
What's hot
(20)
Game Creators Conference 2019 Takashi Itai
Game Creators Conference 2019 Takashi Itai
杉本真樹【インセンティブプレゼンテーション】 Incentive Presentation by Maki Sugimoto MD. August 2014
杉本真樹【インセンティブプレゼンテーション】 Incentive Presentation by Maki Sugimoto MD. August 2014
そう、UE4ならね。あなたのモバイルゲームをより快適にする沢山の冴えたやり方について Part 2 <Texture Streaming, メモリプロ...
そう、UE4ならね。あなたのモバイルゲームをより快適にする沢山の冴えたやり方について Part 2 <Texture Streaming, メモリプロ...
任天堂の呪いとナラティブについてバンナム編
任天堂の呪いとナラティブについてバンナム編
エンジニアから飛んでくるマサカリを受け止める心得
エンジニアから飛んでくるマサカリを受け止める心得
学生時代に知っておきたかったWeb技術の学び方の学び方 | リブセンス
学生時代に知っておきたかったWeb技術の学び方の学び方 | リブセンス
Unity開発で使える設計の話+Zenjectの紹介
Unity開発で使える設計の話+Zenjectの紹介
Epic Online Services でできること
Epic Online Services でできること
自己組織化ゲーム
自己組織化ゲーム
UE4における大規模背景制作事例 最適化ワークフロー編
UE4における大規模背景制作事例 最適化ワークフロー編
Startup Science ①
Startup Science ①
心理的安全性と、Veinの紹介 Psychological safety and introduction of Vein
心理的安全性と、Veinの紹介 Psychological safety and introduction of Vein
開発速度が速い #とは(LayerX社内資料)
開発速度が速い #とは(LayerX社内資料)
Observableで非同期処理
Observableで非同期処理
多機能ボイチャを簡単に導入する方法
多機能ボイチャを簡単に導入する方法
Startup science 2018 4 ビジネスモデルの型とPlanAの作成
Startup science 2018 4 ビジネスモデルの型とPlanAの作成
4つの戦犯から考えるサービスづくりの失敗
4つの戦犯から考えるサービスづくりの失敗
インタフェース完全に理解した
インタフェース完全に理解した
世界最強のソフトウェアアーキテクト
世界最強のソフトウェアアーキテクト
ドメイン駆動設計をゲーム開発に活かす
ドメイン駆動設計をゲーム開発に活かす
Similar to UniRxHandsOnVol1
Extreme Management Center を活用したネットワークの見える化
Extreme Management Center を活用したネットワークの見える化
エクストリーム ネットワークス / Extreme Networks Japan
HoloLens参考書読書会 vol9
HoloLens参考書読書会 vol9
Shoji Oshima
RT ミドルウェアの IoT プラットフォームへの適用
RT ミドルウェアの IoT プラットフォームへの適用
Device WebAPI Consortium
IoT共創ラボ発表資料_TIS_20180327
IoT共創ラボ発表資料_TIS_20180327
Shingo Mori
ソフトウェアジャパン2018 ITフォーラムセッション(3)
ソフトウェアジャパン2018 ITフォーラムセッション(3)
aitc_jp
xRLT02_Holoで大量にモデルを出してみる
xRLT02_Holoで大量にモデルを出してみる
Shoji Oshima
「未知の脅威」を検出するために -Securitydays2015 imatrixセミナー@KITTE-
「未知の脅威」を検出するために -Securitydays2015 imatrixセミナー@KITTE-
imatrix_share
Amazon SageMakerを使った機械学習モデル管理運用システム構築事例
Amazon SageMakerを使った機械学習モデル管理運用システム構築事例
Seongduk Cheon
2018年12月15日 AITC女子会 会話の記録と分析
2018年12月15日 AITC女子会 会話の記録と分析
aitc_jp
AI for Media 2018 Update セミナー: 株式会社ユニゾンシステム: スピーチ AI を活用した文字起こしプラットホームの活用
AI for Media 2018 Update セミナー: 株式会社ユニゾンシステム: スピーチ AI を活用した文字起こしプラットホームの活用
Daiyu Hatakeyama
国内外AIコンペティションからみるAI技術者のキャリアパスの潮流およびAIコンペサイトSIGNATEにおけるAWS活用事例
国内外AIコンペティションからみるAI技術者のキャリアパスの潮流およびAIコンペサイトSIGNATEにおけるAWS活用事例
秀 齊藤
Jazug-8th: Azure AKS & FIWARE & Robot
Jazug-8th: Azure AKS & FIWARE & Robot
Nobuyuki Matsui
JTF2018 FIWARE x robot x IoT
JTF2018 FIWARE x robot x IoT
Nobuyuki Matsui
ソフトウェアベンチャーのサポートエンジニア
ソフトウェアベンチャーのサポートエンジニア
Hideto Masuoka
Enterprise hacknight 1-igarashi
Enterprise hacknight 1-igarashi
Tomohiro Igarashi
20190313_SDGsや社会課題にxRはどう活かせるか
20190313_SDGsや社会課題にxRはどう活かせるか
Shingo Mori
20180130 設計イベント
20180130 設計イベント
Atsushi Takayasu
リースまるみえくん
リースまるみえくん
CREATIVEHOPE / C-LAB
Yahoo! JAPAN MeetUp #8 (インフラ技術カンファレンス)セッション①
Yahoo! JAPAN MeetUp #8 (インフラ技術カンファレンス)セッション①
Yahoo!デベロッパーネットワーク
Netadashi Meetup #6 20170629
Netadashi Meetup #6 20170629
Shigeki Morizane
Similar to UniRxHandsOnVol1
(20)
Extreme Management Center を活用したネットワークの見える化
Extreme Management Center を活用したネットワークの見える化
HoloLens参考書読書会 vol9
HoloLens参考書読書会 vol9
RT ミドルウェアの IoT プラットフォームへの適用
RT ミドルウェアの IoT プラットフォームへの適用
IoT共創ラボ発表資料_TIS_20180327
IoT共創ラボ発表資料_TIS_20180327
ソフトウェアジャパン2018 ITフォーラムセッション(3)
ソフトウェアジャパン2018 ITフォーラムセッション(3)
xRLT02_Holoで大量にモデルを出してみる
xRLT02_Holoで大量にモデルを出してみる
「未知の脅威」を検出するために -Securitydays2015 imatrixセミナー@KITTE-
「未知の脅威」を検出するために -Securitydays2015 imatrixセミナー@KITTE-
Amazon SageMakerを使った機械学習モデル管理運用システム構築事例
Amazon SageMakerを使った機械学習モデル管理運用システム構築事例
2018年12月15日 AITC女子会 会話の記録と分析
2018年12月15日 AITC女子会 会話の記録と分析
AI for Media 2018 Update セミナー: 株式会社ユニゾンシステム: スピーチ AI を活用した文字起こしプラットホームの活用
AI for Media 2018 Update セミナー: 株式会社ユニゾンシステム: スピーチ AI を活用した文字起こしプラットホームの活用
国内外AIコンペティションからみるAI技術者のキャリアパスの潮流およびAIコンペサイトSIGNATEにおけるAWS活用事例
国内外AIコンペティションからみるAI技術者のキャリアパスの潮流およびAIコンペサイトSIGNATEにおけるAWS活用事例
Jazug-8th: Azure AKS & FIWARE & Robot
Jazug-8th: Azure AKS & FIWARE & Robot
JTF2018 FIWARE x robot x IoT
JTF2018 FIWARE x robot x IoT
ソフトウェアベンチャーのサポートエンジニア
ソフトウェアベンチャーのサポートエンジニア
Enterprise hacknight 1-igarashi
Enterprise hacknight 1-igarashi
20190313_SDGsや社会課題にxRはどう活かせるか
20190313_SDGsや社会課題にxRはどう活かせるか
20180130 設計イベント
20180130 設計イベント
リースまるみえくん
リースまるみえくん
Yahoo! JAPAN MeetUp #8 (インフラ技術カンファレンス)セッション①
Yahoo! JAPAN MeetUp #8 (インフラ技術カンファレンス)セッション①
Netadashi Meetup #6 20170629
Netadashi Meetup #6 20170629
UniRxHandsOnVol1
1.
Copyright © 2018
TIS Inc. All rights reserved. 戦略技術センター 大島昇時 緩く触って覚える ゼロからしっかり覚える
2.
Copyright © 2018
TIS Inc. All rights reserved. 自己紹介 名前 : 大島昇時 ハンドル : さんすうP @Sansuusetto 所属 : TIS株式会社 戦略技術センター 1
3.
Copyright © 2018
TIS Inc. All rights reserved. ・三菱のグループ会社で、組み込み系エンジニア約4年 ・映像系の中小で、マネージャ、映像制作、VRゲーム制作約3年 ・TISに2018/02入社。xRの研究開発を行う 2 経歴
4.
Copyright © 2018
TIS Inc. All rights reserved. Agenda 導入編 ・UniRxとは ・UniRxで出来ること 基本編 ・Subject, OnNext, Subscribe ・Lesson_01 ・ストリーム ・オペレータ ・Lesson_02 応用編 ・Lesson_03 ・Lesson_04 3
5.
Copyright © 2018
TIS Inc. All rights reserved. 導入編 4
6.
Copyright © 2018
TIS Inc. All rights reserved. はじめに UniRxは非常に便利なライブラリです。 ただし、銀の弾丸的な効果を期待しないでください。 突然設計がきれいになったり、生産性が上がったりは しません。 UniRxを使いこなし、有効なパターンを学ぶことで、きれい な設計で高い生産性を発揮することが出来るようになります。 とても便利なライブラリなので、まずはUniRxで出来ること を知り、興味を持って触ってみましょう! 5
7.
Copyright © 2018
TIS Inc. All rights reserved. ハンズオン資料 イベントページ https://techcircle.connpass.com/event/96518/ パワポ資料 HandsOnのProject https://github.com/sansuu/UniRxHandsOnVol1 6
8.
Copyright © 2018
TIS Inc. All rights reserved. UniRxとは neueccさんが作成された(現在もアップデート中)Unity向けの ReactiveExtensions (*1) ライブラリ。 UnityAssetStoreにて、無料でダウンロード可能。 *1:Rx(ReactiveExtensions) C#向けの非同期処理ライブラリ。 Rx ≒ event 機能的にはeventの上位互換。 7
9.
Copyright © 2018
TIS Inc. All rights reserved. UniRxで出来ること 下記は、UniRxでできることのほんの一部です。 ・メソッドチェーンでイベントに対する処理を美しく書ける ・PureClass(*1)でUpdate処理を実行できる ・PureClassでCoroutineを実行できる ・Coroutine使わなくてもTimer処理ができる ・変数を触っている感覚でイベントの配信が実装できる ・uGUIのイベント処理が非常に簡潔に書ける ・イベントの購読側で、イベントに対するフィルタをかけるのが 得意(Where,Skip,Repeat,Select...) ・複数のイベントを合成したり、一つのイベントを 分岐させたりできる *1:MonoBehaviourを継承していないClass 8
10.
Copyright © 2018
TIS Inc. All rights reserved. UniRxでコードが簡潔に書ける例 9 <お題> アプリ立ち上げた5秒後以降、毎秒ログを出力する。 15秒経過後はログ出力を停止する。
11.
Copyright © 2018
TIS Inc. All rights reserved. UniRxを使わない記述例 10
12.
Copyright © 2018
TIS Inc. All rights reserved. UniRxでの記述例 11
13.
Copyright © 2018
TIS Inc. All rights reserved. 12 どうでしょうか? 無駄なメソッドが減って、コードが簡潔になりましたね。 まずは、なんかUniRx便利そうだなーというのを 感じていただけると嬉しいです。
14.
Copyright © 2018
TIS Inc. All rights reserved. 基本編 ― Subject, OnNext, Subscribe ― 13
15.
Copyright © 2018
TIS Inc. All rights reserved. イベントの基本 UniRxはイベントの拡張です。 以下の図は基本的なイベントの概念なので覚えておきましょう 14 Subject Subscribe 観察者A (Observer) 観察者B 観察者C Subject Notify 観察者A (Observer) 観察者B 観察者C
16.
Copyright © 2018
TIS Inc. All rights reserved. 単語を覚えよう 15 単語 直訳 Subject 主題 Observable 観察可能 Observer 観察者 Subscribe 購読する UniRxを覚える上で、避けては通れない頻出単語がありま す。とりあえずこれだけは覚えておきましょう。
17.
Copyright © 2018
TIS Inc. All rights reserved. eventとUniRx 16 結果は同じ 基本的な書き方は、大きく変わらない event UniRx
18.
Copyright © 2018
TIS Inc. All rights reserved. UniRxの基本構文(SubscribeとOnNext) 17 Subjectの定義 Subjectの購読+受信時の振る舞い定義 Observerにメッセージを流す
19.
Copyright © 2018
TIS Inc. All rights reserved. Subjectってなに? 18 IObserverとIObservableを実装したClass。 SubjectにOnNext等で値を渡すことで、 Subjectの購読者(Observer)にメッセージを通知する。 OnCompleted OnError OnNext Subscribe Subject IObserver IObservable 図で表すとこう
20.
Copyright © 2018
TIS Inc. All rights reserved. Subjectってなに? 19 Subject Subscribe 観察者A (Observer) 観察者B 観察者C Subject OnNext OnError OnCompleted 観察者A (Observer) 観察者B 観察者C 前述の図で表すと以下のようになる。
21.
Copyright © 2018
TIS Inc. All rights reserved. とりあえず自分で作ってみよう 20 SubjectがUniRxの基本と説明しましたが、深堀すると実は 結構難しい概念です。(Hot,Cold,スケジューラ等) 今回はその辺りすっ飛ばして、とりあえず触ってみましょう。
22.
Copyright © 2018
TIS Inc. All rights reserved. Lesson_01 21 以下をSubjectとObserverの2つのClassに分解する。 「Assets/UniRxHandsOn/Projects/02_Lesson/01_Lesson_01」 以下にScene及びClassが格納されているので、それを利用すること
23.
Copyright © 2018
TIS Inc. All rights reserved. Lesson_01― 解答例 ― 22
24.
Copyright © 2018
TIS Inc. All rights reserved. Lesson_01― 解説 ― 23 Subjectそのものを外部に公開した場合、 外部からSubjectそのものを触れてしまう ので、ちゃんとカプセル化しましょう
25.
Copyright © 2018
TIS Inc. All rights reserved. Lesson_01― Betterな解答例 ― 24 Point Subjectは外部に公開せず、 IObservableのInterfaceを公開する
26.
Copyright © 2018
TIS Inc. All rights reserved. OnCompletedとOnError 25 OnCompleted OnError OnNext Subscribe Subject IObserver IObservable IF 役割 OnCompleted ストリームの停止及び完了通知 OnError ストリームの停止及びエラー通知 OnNext メッセージの変化通知
27.
Copyright © 2018
TIS Inc. All rights reserved. OnCompletedの挙動 26 OnCompleted, OnErrorを通知した場合、 以降のOnNextは通知されない
28.
Copyright © 2018
TIS Inc. All rights reserved. OnCompleted, OnErrorの振る舞いを定義す る 27
29.
Copyright © 2018
TIS Inc. All rights reserved. SubscribeIFの定義 28
30.
Copyright © 2018
TIS Inc. All rights reserved. 基本編 ― ストリーム ― 29
31.
Copyright © 2018
TIS Inc. All rights reserved. ストリームって? 30 Rxで扱うメッセージの流れのこと。 メッセージは後述のオペレータによって加工され、 Subscribeした際に登録した処理を行う。 メッセージ Subject 加工 処理 上記メッセージの流れをストリームという
32.
Copyright © 2018
TIS Inc. All rights reserved. ストリームって?(コードで) 31 ①メッセージをストリームに流す ②Subscribe時に登録した処理を行う
33.
Copyright © 2018
TIS Inc. All rights reserved. ストリームソース 32 メッセージを発行するソースとなる物をストリームソースと 呼ぶ。 Rxではストリームソースを用意しないと何も始まりません。 以下はUniRxにおけるストリームソースの一部です。 ・Subject ・ReactiveProperty ・UniRx.Triggers~
34.
Copyright © 2018
TIS Inc. All rights reserved. ストリームソース ―ReactiveProperty― 33 変数にSubjectの機能を追加したもの。 値の変更を通知してくれる変数みたいなもの。 非常に使い勝手が良いので、覚えておきましょう。
35.
Copyright © 2018
TIS Inc. All rights reserved. ストリームソース ―ReactiveProperty― 34 ReactivePropertyのValueを変更した時点で ストリームにメッセージが流れる Subject→ReactiveProperty IObservable→IReadOnlyReactiveProperty に変更しただけ 購読側は基本的に変わらない
36.
Copyright © 2018
TIS Inc. All rights reserved. ストリームソース ―ReactiveProperty― 35 先ほどのコードを実行すると、実行結果は下記のようになり ます。 ReactivePropertyは、Subscribe時に必ず値をPushする 設計となっているため注意が必要です。 これを無視したい場合、後述のオペレータが活躍します
37.
Copyright © 2018
TIS Inc. All rights reserved. 基本編 ― オペレータ ― 36
38.
Copyright © 2018
TIS Inc. All rights reserved. オペレータって? 37 ストリームに流れるメッセージを加工するための機能。 UniRxにはオペレータが大量に用意されています。 以下はほんの一部。 オペレータ できること Where 条件を満たすメッセージを通す Select メッセージを変換する Skip メッセージを指定数スキップする Take ストリームを先頭から指定した件数までで切る
39.
Copyright © 2018
TIS Inc. All rights reserved. オペレータとメソッドチェーン 38 オペレータは下記の様にメソッドチェーンで繋ぐ事ができま す。 それは、下記の様にすべてのオペレータが、IObservable の拡張メソッドとして定義され、IObservableを返す設計 となっているからです。 上記の記法により、Where<T>が、 IObservableの拡張メソッドとして定義される
40.
Copyright © 2018
TIS Inc. All rights reserved. IObservableのIF 39 つまり、IObservableのIFはSubscribeだけでなく 実体としては大量のオペレータIFを定義しているということ OnCompleted OnError OnNext Subscribe Where Select Skip Take ・ ・ ・ Subject IObserver IObservable OnCompleted OnError OnNext Subscribe Subject IObserver IObservable
41.
Copyright © 2018
TIS Inc. All rights reserved. Lesson_02 40 以下のストリームから、偶数(0を除く)の2乗をログ出力す るObserverをオペレータを用いて作成する 「Assets/UniRxHandsOn/Projects/02_Lesson/02_Lesson_02」 以下にScene及びClassが格納されているので、それを利用すること 実行結果 (以降も続く)
42.
Copyright © 2018
TIS Inc. All rights reserved. Lesson_02― 解答例 ― 41
43.
Copyright © 2018
TIS Inc. All rights reserved. 休憩 42
44.
Copyright © 2018
TIS Inc. All rights reserved. 応用編 43
45.
Copyright © 2018
TIS Inc. All rights reserved. uGUIイベントをストリームに変換する 44 下記の様にして、uGUIイベントをストリームに変換するこ とができる。 IObservable同様にUnityEventの拡張メソッドとして定義されている onClick(UnityEvent)をストリームに変換
46.
Copyright © 2018
TIS Inc. All rights reserved. Lesson_03 45 uGUIイベントをストリームに変換し、下記の機能を作成す る。 Sliderの値を表示する DropDownListで選んだColorを 表示する タイマーログ停止 タイマーログ開始 「Assets/UniRxHandsOn/Projects/02_Lesson/03_Lesson_03」 以下にScene及びClassが格納されているので、それを利用すること
47.
Copyright © 2018
TIS Inc. All rights reserved. Lesson_03 ― 解答例 ― 46 各UnityEventをストリームに変換 してuGUIに対する処理を行う
48.
Copyright © 2018
TIS Inc. All rights reserved. Lesson_03 ― 補足 ― 47 1秒ごとにストリームに メッセージを流すストリームソース Timer停止のため、 ストリームを解放する
49.
Copyright © 2018
TIS Inc. All rights reserved. Lesson_04 48 UniRxを利用して、プレイヤーのコントロール機能を作成す る。 プレイヤーコントロールの仕様 ・アローキーで前後左右移動する(走る) ・スペースキーでジャンプする ・「C」キーでしゃがむ(しゃがみ歩き可能) ・LeftShiftキーで歩く 「Assets/UniRxHandsOn/Projects/02_Lesson/04_Lesson_04」 以下にScene及びClassが格納されているので、それを利用すること
50.
Copyright © 2018
TIS Inc. All rights reserved. Lesson_04 49 参考動画
51.
Copyright © 2018
TIS Inc. All rights reserved. Lesson_04 ― 前提 ― 50 本演習では、StandardAssetsのClassをUniRx化したClass にて、キャラクターの移動処理(Model)を行う。 移動量及び、状態を受け取 るIFとなっている 毎フレーム移動量及び、状態を投げる仕様のため、 Inputの状態を常に最新に更新する必要がある
52.
Copyright © 2018
TIS Inc. All rights reserved. Lesson_04 ― 解答例 ― 51
53.
Copyright © 2018
TIS Inc. All rights reserved. Lesson_04 ― 解説 ― 52 UpdateAsObservableは毎フレーム ストリームにメッセージを流す ストリームソース Select内でInputを取得することで true/false何れの場合でもストリー ムにメッセージを流せる
54.
Copyright © 2018
TIS Inc. All rights reserved. まとめ 53 ・ストリームに流れるメッセージの種類は下記の3種類 OnNext, OnError, OnCompleted ・ストリームにオペレータを挟むことで、メッセージを 加工できる ・IObservableはIFの拡張により、メソッドチェーンで 繋げることができる ・上記をうまく使うことで、どの様な条件で何をしたいか 明確なコードとなり、可読性が向上する
55.
Copyright © 2018
TIS Inc. All rights reserved. 参考資料 54 敬称略 • neue cc blog(neue cc) • UniRx入門シリーズ 目次(torisouP)
56.
THANK YOU
Download now