Home
Explore
Submit Search
Upload
Login
Signup
Check these out next
脱UniRx&Croutineから始めるUniTask
Euglenaching
Observableで非同期処理
torisoup
Unityでオニオンアーキテクチャ
torisoup
MagicOnion入門
torisoup
コールバックと戦う話
torisoup
ObserverパターンからはじめるUniRx
torisoup
【Unity】 Behavior TreeでAIを作る
torisoup
若輩エンジニアから見たUniRxを利用したゲーム開発
Hirohito Morinaga
1
of
21
Top clipped slide
UniRxでMV(R)Pパターンをやってみた
Apr. 16, 2015
•
0 likes
24 likes
×
Be the first to like this
Show More
•
27,179 views
views
×
Total views
0
On Slideshare
0
From embeds
0
Number of embeds
0
Download Now
Download to read offline
Report
Technology
Model-View-(Reactive)Presenterパターンをやってみた話
torisoup
Follow
Recommended
UniRx完全に理解した
torisoup
8.9K views
•
36 slides
インタフェース完全に理解した
torisoup
5.7K views
•
39 slides
MVPパターンによる設計アプローチ「あなたのアプリ報連相できてますか」
U-dai Yokoyama
17.8K views
•
26 slides
UniTask入門
torisoup
13.8K views
•
95 slides
Unity開発で使える設計の話+Zenjectの紹介
torisoup
121.4K views
•
139 slides
はじめてのUniRx
torisoup
90.2K views
•
94 slides
More Related Content
Slideshows for you
(20)
脱UniRx&Croutineから始めるUniTask
Euglenaching
•
228 views
Observableで非同期処理
torisoup
•
10.2K views
Unityでオニオンアーキテクチャ
torisoup
•
9.2K views
MagicOnion入門
torisoup
•
10K views
コールバックと戦う話
torisoup
•
2.9K views
ObserverパターンからはじめるUniRx
torisoup
•
7.8K views
【Unity】 Behavior TreeでAIを作る
torisoup
•
18.3K views
若輩エンジニアから見たUniRxを利用したゲーム開発
Hirohito Morinaga
•
71.9K views
未来のプログラミング技術をUnityで -UniRx-
torisoup
•
152.6K views
誰もAddressableについて語らないなら、自分が語るしかない…ッッッッ
Tatsuhiko Yamamura
•
37.8K views
Cinemachineで見下ろし視点のカメラを作る
Unity Technologies Japan K.K.
•
3.7K views
【CEDEC2017】Unityを使ったNintendo Switch™向けのタイトル開発・移植テクニック!!
Unity Technologies Japan K.K.
•
43.8K views
Riderはいいぞ!
UnityTechnologiesJapan002
•
13.4K views
Unity 2018-2019を見据えたDeNAのUnity開発のこれから [DeNA TechCon 2019]
DeNA
•
22.9K views
Doozy UI 使おうぜ! #unity_lt
torisoup
•
24.5K views
【Unite 2017 Tokyo】最適化をする前に覚えておきたい技術
Unity Technologies Japan K.K.
•
44.7K views
UniRx の1歩目
infinite_loop
•
2.7K views
【Unite 2018 Tokyo】60fpsのその先へ!スマホの物量限界に挑んだSTG「アカとブルー」の開発設計
UnityTechnologiesJapan002
•
21.4K views
Deep Dive async/await in Unity with UniTask(UniRx.Async)
Yoshifumi Kawai
•
103K views
【Unite 2018 Tokyo】そろそろ楽がしたい!新アセットバンドルワークフロー&リソースマネージャー詳細解説
Unity Technologies Japan K.K.
•
42.4K views
More from torisoup
(11)
MagicOnion~C#でゲームサーバを開発しよう~
torisoup
•
23.4K views
Unityで作ったゲームをDLカードで配布してみた話 #roppongiunity
torisoup
•
3.7K views
ARでVRアバターを表示するシステムを構築しよう
torisoup
•
3.2K views
Photon Cloud ことはじめ
torisoup
•
1.8K views
アバター生放送支援アプリ「アバれぽ」
torisoup
•
780 views
UnityとNCMBでユーザ管理を実装してみた話
torisoup
•
2.4K views
Task vs Observable
torisoup
•
489 views
Unityでオンラインゲーム作った話
torisoup
•
9.8K views
UniRxでPUNを使いやすくする
torisoup
•
4.4K views
みくみくまうすについて&Unity で使えるコーディングノウハウ
torisoup
•
9K views
Unity講習会(初級)
torisoup
•
22.2K views
Recently uploaded
(20)
《杨百翰大学毕业证|学位证书校内仿真版本》
d520dasw12
•
2 views
ネットワークパケットブローカー市場.pdf
HinaMiyazu
•
7 views
【2023年5月】平成生まれのためのUNIX&IT歴史講座
法林浩之
•
16 views
ChatGPT触ってみた
infinite_loop
•
54 views
触感に関わる共感覚的表現と基本6感情の対応関係の検証
Matsushita Laboratory
•
12 views
JSONEncoderで詰まった話
とん とんぼ
•
65 views
☀️【卡尔顿大学毕业证成绩单留学生首选】
15sad
•
2 views
ChatGPT + LlamaIndex 0 .6 による チャットボット の実装
Takanari Tokuwa
•
45 views
留信网认证可查【拜欧拉大学文凭证书毕业证购买】
1lkjhg
•
3 views
統計学の攻略_推測統計学の考え方.pdf
akipii Oga
•
191 views
Kubernetes超入門
Takashi Suzuki
•
5 views
【DL輪読会】Egocentric Video Task Translation (CVPR 2023 Highlight)
Deep Learning JP
•
59 views
JSTQB_テストプロセスの概念モデル.pdf
akipii Oga
•
186 views
【DL輪読会】Poisoning Language Models During Instruction Tuning Instruction Tuning...
Deep Learning JP
•
52 views
20230602_enebular_meetup_kitazaki_v1.pdf
Ayachika Kitazaki
•
15 views
JSTQB_テストマネジメントとレビュープロセス.pdf
akipii Oga
•
160 views
統計学の攻略_正規分布ファミリーの全体像.pdf
akipii Oga
•
184 views
20230516 @Mix Leap Hirohiko_Suwa
Masashi Nakagawa
•
90 views
20230601_Visual_IoTLT_vol14_kitazaki_v1.pdf
Ayachika Kitazaki
•
52 views
Windows ChatGPT Bing AI.pptx
Atomu Hidaka
•
6 views
UniRxでMV(R)Pパターンをやってみた
UniRxでMV(R)Pパターン をやってみた @toRisouP 2015/04/16
自己紹介 • とりすーぷ(@toRisouP) • 趣味でUnityいじってます
みくみくまうす • ニコ生の配信支援ツール • MMDモデルがニコ生のコメントを読み上げる •
フリーソフトとして公開中 • Unity5製(内部でUniRx使ってる) http://mikumikumouth.net/
uGUI Unity GUI
みくみくまうす
uGUIに適したM-V-○パターン
Model View (Reactive)
Presenter
MV(R)Pパターン • UniRxを使ったuGUIのデザインパターン • ModelとViewを「Presenter」がつなぐ •
データのやり取りにObservableとReactivePropertyを使う • View/Modelの変更をReactiveに反映できる
Model-View-(Reactive)Presenterパターン View (uGUIコンポーネント等)) Presenter Model ModelはPresenterに依存しない ViewはPresenterに依存しない PresenterがModelとViewを参照する
Model-View-(Reactive)Presenterパターン View (uGUIコンポーネント等)) Presenter Model ReactiveProperty 内部状態の変化の通知 Subscribe Viewへ反映 xxxAsObservable ユーザ入力 Subscribe Modelに反映
みくみくまうす MV(R)Pパターンで実装してある
MV(R)P実装例 • 読み上げタイミング調整スライダ • Slider
または InputField を調整すると値をModelに反映 • 片方のViewを変動させるともう一方のViewに反映 • InputFieldの値域は-1500~1500 • ただしSliderの値は10刻み(-150~150)
Model (ConfigComponent) 関係図 SpeechTimingSlider Presenter SpeechTimingReactiveProperty OnValueChangedAsObservable() SpeechTimingInputField Presenter OnEndEditAsObservable()
SpeechTimingSliderPresenter
SpeechTimingInputFieldPresenter
MV(R)Pで実装してみた感想 • シンプルにキレイにまとまる • ModelとViewの独立性が保たれるのがイイ! •
Viewの変換ロジックにRxのオペレータがそのまま使える • Presenterの作り方は考える必要がありそう – SceneあたりPresenterは1つにして集中管理する? – 1つのUI要素あたり1つPresenterを作る?
まとめ • UnityでRxが使えるの本当にスバラシイ – uGUI周りがキレイに書けてとても助かる –
ゲームロジックとも結構相性が良い – もっと流行らせたい • MV(R)Pは現時点ではuGUIにおける最適解かも – Rxの難しい部分が出てこないのでRx初心者でも使えるはず @toRisouP
PresenterをView要素毎に作るパターン View Presenter Model View Presenter View Presenter View Presenter ○ GetComponentでPresenterがViewを取得できる(スクリプト内で完結する) ○ 1Presenter当たりのコード量が少なくなって読みやすくなる ×
View要素の数だけPresenterが必要になる
みくみくまうすのPresenterの数 • 1UI要素あたり1Presenterで作ったら大変なことになった
Presenterを1つにまとめるパターン View Presenter Model View View View ○
1つのPresenterで管理するのでどこで処理しているか把握しやすい ○ View要素の数の変更に対応しやすい × ViewとPresenterの紐付けがInspector Viewからになる