SlideShare a Scribd company logo
1 of 59
Download to read offline
文脈を繰る
美しきZenjectプロジェクト
からの眺め
Contextの扱い方と活用方法
Mikito Yoshiya / @mikito0521
Zenject完全に理解した 2018/9/6
Mikito Yoshiya(ヨシヤミキト)
● ワンダープラネット株式会社 - タノシムスタジオ所属
● Unityを使い始めて7年
● Zenjectを使い初めて1年半
● Twitter : @mikito0521
アジェンダ
● Contextとは何か
● Contextの基本的な使い方
○ 種類と親子関係
○ 動的生成とライフサイクル
○ 構築方法
● Contextの具体的な活用案
Contextとは何か
ZenjectにおけるContext
● 内部のDIコンテナにコン
ポーネントをBind
● なんでも依存解決してくれ
る良い奴
ZenjectにおけるContext
Component A
Component B
Context
DI Container
Resolve
Bind
Installer
Contextどう扱うべきか問題
● 使いこなそうとしたときに正解がわからん
○ いろんなコンポーネントを一つのContextにBind
○ Bindしたいけど動的生成もしたい。どこまでBindすべき
○ 分割・Parenting複雑化。わけわからん
そもそも辞書的には:Context(文脈)
● 一般に、すじみち・脈絡。また、ある事柄の背景や周辺の状
況。文における個々の語または個々の文の間の論理的な
関係・続き具合。文の脈絡。(Weblio)
● 実行中のプログラムが処理内容を選択する際の判断の材
料となる、プログラムの内部状態や置かれた状況、与えられ
た条件などを指すことが多い。(IT用語辞典)
一般的なContext(文脈)の例
マック買おうぜ
一般的なContext(文脈)の例
マック買おうぜ
マック買おうぜ
お昼時に
壊れたPCの前で
一般的なContext(文脈)の例
マック買おうぜ
マック買おうぜ
お昼時に
壊れたPCの前で
ハンバーガーを買う
Macintoshを買う
後半の文章機能は全く同じだが、
前にくる「前提条件」で全く違う動きを見せる
プログラムでも様々な前提条件を扱っている
本番
サーバーで
iOSにて
Androidにて
バトル
シーンをUnity
Editorにて
開発
サーバーで
モック
データで
キャラ強化
シーンを
通常プレイ
テストプレイ
● いろいろな文脈で個々のプログラムが起動
+プログラムの状態は変化する
本番
サーバーで
iOSにて
バトル
シーンをプレイ
キャラ強化
シーンをプレイ
● 末端の文脈が起動中に変化する
つまり
プログラムの前提条件や内部状態を
明示的に分割したものがContextとみなせる
そして
分割したContextをスイッチすることで
いろいろできるようになる
もう少し具体的な例
● Contextが1つ
○ 同じ条件で常に起動
○ 内部状態の区分も一つ
Repository
Context
Base System
アプリケーションを起動する
UseCase
Manager
Inject
Inject
もう少し具体的な例
● Contextを分割してみる
Sub Context
Repository
Root Context
Base System
アプリケーションを起動する
UseCase
Manager
Inject
Inject
もう少し具体的な例
Sub Context
Inject
● RootのContextを変更することで、起動モードを変更
Repository
Root Context
Base System
本番プレイでアプリケーションを起動する
テストプレイとしてアプリケーションを起動する
UseCase
Manager
Mock Repository
Mock Root Context
Mock Base System
Inject
ZenjectにおけるContextとは
● プログラムやシーンを起動する際の前提条件の集合
● あるコンポーネント群が依存するコンポーネント群
● 複数要素によって成り立つ内部状態の区分
Contextを意味のある単位で分割・スイッチすることで
柔軟なアプリケーションが実現できる
Contextの基本的な使い方
Contextの基本的な使い方
Contextの種類
Contextの種類(4種類)
● Scene Context
● Project Context
● Scene Decorator Context
● Game Object Context
Scene Context
● シーンに事前配置する最
も基本的なContext
● シーンと1対1で紐づく
Project Context
● Project全体で利用するも
のをBindできる
● Scene ContextがRunする
前に自動的に生成される
● Resources以下にPrefabを
配置し事前設定できる
Scene Decorator Context
● シーンに事前配置、他の
シーンのScene Context
に追加でコンポーネント
をバインドすることができ
る(後述)
Game Object Context
● GameObjectの単位で存在
できるContext
Contextの基本的な使い方
Contextの親子関係
Contextの親子関係(Parenting)
● Contextは親を持つことが
できる
● 子では親のContextを含め
てリゾルブの処理が走る
● 親から子のContextにはア
クセスできない
Scene Context
Project Context
Game Object Context
Scene Context
Game Object Context
Project ContextとScene Context
● Project Contextはすべて
のScene Contextの親にな
る
● Project ContextにBindした
ものはすべてのContextで
Inject可能
Scene Context
Project Context
Game Object Context
Scene Context
Game Object Context
Scene ContextとScene Context(マルチシーン)
● Scene ContextのContract
Names・Parent Contract
Namesの設定で親子関係
が設定される
● 複数の親の設定も可能
● 親シーンは事前にロードし
ておく必要がある
Scene Context
Project Context
Game Object Context
Scene Context
Game Object Context
Scene ContextとGame Object Context
● 配置されたシーンのScene
Contextが親となる
● Game Object Context間の
親子関係はHierarchyに従う
Scene Context
Project Context
Game Object Context
Scene Context
Game Object Context
Scene ContextのDecoration
● 対象のScene Contextを変
更なく機能追加等ができる
● 複数のシーンを同時に読
み込み合体させて起動す
るケースやデバッグ機能の
追加等で利用できる
Scene Context
Project Context
Decorator Scene Context
Decorator Scene Context
Contextの基本的な使い方
Contextと動的生成
Zenjectにおける動的生成の基本
● 動的生成かつDI Containerを利用するものはFactoryを利用
● Factoryで生成したものはContextにBindされない
● 現在のContextを前提条件として動的生成物に依存を注入
[Inject] IComponentA
ComponentB
Context
ComponentA
Factory Inject
Scene Contextの動的生成
● (当然だが)シーンのロード・アンロードにより制御
● ロードタイミングや順番・依存に注意
Game Object Contextの動的生成
● Game Object Contextをプレファブ化しFactoryを利用
● FromSubContainerResolveとByNewContextPrefab等を利用
Context
FromSubContainerResolve
● 指定したコンテナ内の何かをFacade(窓口)として解決をおこ
なう
Container
Facade
Component
Sub
Component
Sub
Component
Resolve
Component
Resolve
Game Object ContextとFacadeとメリット
Scene
Component
Scene Context Game Object Context
Facade
Component
Sub
Component
Sub
Component
Resolve
● サブコンテナとして局所的なDIシステムが構築できる
● 利用者からするとContextかどうかは気にしない
Use
Scene
Component
Resolve
Contextとオブジェクトのライフサイクル紐づけ
● IDisposableの利用
○ BindInterfacesToやBindInterfacesAndSelfTo等でBind
● Contextが破棄されたときに自動で呼ばれる
○ 内部状態の区分と処理・データが紐づく
○ Staticな実装よりはるかに安全
Contextの基本的な使い方
Contextの構築
ContextとInstallerの分割
● Contextは意味のある複数の前提条件の集合
● 使い回すInstallerを分割
● Installerの組み合わせで異なるContextを準備できる
App Context
API Installer
Game System Installer
Standalone App Context
Local Storage Installer
Game System Installer
[Inject] IRepository
大事なのはInterfaceの設計
● Interfaceをしっかり設計することは前提(Contextと関係ない)
● InterfaceによるInjectionによりContextスイッチを実現
Use Case
Children Context
InjectRepository :        
IRepository
Parent Context
ここまでまとめると
● Contextの種類と親子関係
○ どんな状況でも変わらないもの:Project Context
○ 大きい粒度:Scene Context
○ 小さい粒度:Game Object Context
○ シーンを分割する場合等:Scene Decorator Context
● 動的生成はContextを前提条件としてFactory
○ さらにGame Object Contextを利用すると局所に対してもDI
コンテナを利用できる
● Interface設計・Installerを分割して意味のあるContextを構築
Contextの活用案
注意:あくまで提案
● プロジェクトの構成案を1つ紹介
● プロダクション・リリースレベルでの運用はこれから
● なんかできそうな例とかを提示
● 様々な解釈とプロジェクトごとの適用があるはず
Contextの構成の例
Base System
Project Context
Server API
Application Context
(Scene Context)
Scene Routing
Scene Management
Battle Scene Context
(Scene Context)
Index View Factory
Character Factory
Index Presenter
Index View Context
(Game Object Context)
Index View
Index UseCase
Character
Character
(Game Object Context)
Character Mover
Animator
Repository
Contextの構成の例:役割のいくつか
Base System
Project Context
Server API
Application Context
(Scene Context)
Scene Routing
Scene Management
Battle Scene Context
(Scene Context)
Index View Factory
Character Factory
Index Presenter
Index View
Index UseCase
Character
Character
(Game Object Context)
Character Mover
Animator
Repository
Server APIに依存し
データCRUDの
インターフェースを提供
Index View Context
(Game Object Context)
Contextの構成の例:役割のいくつか
Base System
Project Context
Server API
Application Context
(Scene Context)
Scene Routing
Scene Management
Battle Scene Context
(Scene Context)
Index View Factory
Character Factory
Index Presenter
Index View
Index UseCase
Character
Character
(Game Object Context)
Character Mover
Animator
Repository
Repositoryに依存
データを取得して
ビジネスロジックを実行
Index View Context
(Game Object Context)
Contextの構成の例:役割のいくつか
Base System
Project Context
Server API
Application Context
(Scene Context)
Scene Routing
Scene Management
Battle Scene Context
(Scene Context)
Index View Factory
Character Factory
Index Presenter
Index View
Index UseCase
Character
Character
(Game Object Context)
Character Mover
Animator
Repository
シーンをロードしたり
制御する人
Index View Context
(Game Object Context)
Contextの構成の例:ポイントのいくつか
Base System
Project Context
Server API
Application Context
(Scene Context)
Scene Routing
Scene Management
Battle Scene Context
(Scene Context)
Index View Factory
Character Factory
Index Presenter
Index View
Index UseCase
Character
Character
(Game Object Context)
Character Mover
Animator
Repository
プロジェクト全体で使う
ものしかInstallしない
Index View Context
(Game Object Context)
Contextの構成の例:ポイントのいくつか
Base System
Project Context
Server API
Application Context
(Scene Context)
Scene Routing
Scene Management
Battle Scene Context
(Scene Context)
Index View Factory
Character Factory
Index Presenter
Index View
Index UseCase
Character
Character
(Game Object Context)
Character Mover
Animator
Repository
このシーンが
LoadLevel0になることで
起動フローが決定
Index View Context
(Game Object Context)
Contextの構成の例:ポイントのいくつか
Base System
Project Context
Server API
Application Context
(Scene Context)
Scene Routing
Scene Management
Battle Scene Context
(Scene Context)
Index View Factory
Character Factory
Index Presenter
Index View
Index UseCase
Character
Character
(Game Object Context)
Character Mover
Animator
Repository
アウトゲーム・インゲーム
等大きい内部状態の
区分をシーンコンテキスト
として展開する
Index View Context
(Game Object Context)
Contextの構成の例:ポイントのいくつか
Base System
Project Context
Server API
Application Context
(Scene Context)
Scene Routing
Scene Management
Battle Scene Context
(Scene Context)
Index View Factory
Character Factory
Index Presenter
Index View
Index UseCase
Character
Character
(Game Object Context)
Character Mover
Animator
RepositoryFactoryにより
Game Object Context
による画面を動的に
起動
Game Object Context
により画面単位の機
能を実現
Index View Context
(Game Object Context)
応用例1:プランナー用テストプレイモード
Base System
Project Context
Mock Data Store
Test Play Application Context
(Scene Context)
Test Routing
Scene Management
Battle Scene Context
(Scene Context)
Index View Factory
Character Factory
Index Presenter
Index View
Index UseCase
Character
Character
(Game Object Context)
Character Mover
Animator
Repository
データの取得
コンポーネントを変更
直接目的のシーンを
起動しキャラや敵の
組み合わせなどを
Editorで、すぐに設定
できるようにする
Fixture Data
Index View Context
(Game Object Context)
応用例2:デザインクオリティチェック実機確認アプリ
Base System
Project Context
Mock Data Store
Design Check Application Context
(Scene Context)
Check Routing
Scene Management
Check Scene Context
(Scene Context)
Character Factory
CheckView
クオリティチェック用
シーンにより専用アプ
リケーションを構築
Fixture Data
このシーンを
LoadLevel0に
指定しビルド
Character
Character
(Game Object Context)
Character Mover
Animator
その他の応用
● プレイモードのランタイム切り替え
○ シングル・マルチプレイヤー(要インターフェース設計)
● チュートリアルフローの切り替え
○ チュートリアル用のPresenterを持つContext
○ 呼び出し先APIの切り替え
コンテキストを扱う課題と方針
● Context間の依存がわかりにくい
○ 設計をしっかり、かつシンプルに努めるべし
○ SceneContextの階層化は2段階くらいが限度か
○ Validationの機能をつかう(自動テスト?)
● シーンの取り回しが難しい
○ シーンを管理する人をしっかり設計
○ Game Object Contextの活用
○ ZenjectDefaultSceneContractConfig(v6.1)の活用
まとめ
まとめ
● Contextは前提条件や内部状態の区分、そしてその依存を扱う
● Contextの利用は特徴と構成を意識
○ 4種類のContext・Parenting
○ ライフサイクルとContextの構築方法
● Contextのスイッチを利用した案を紹介
○ 多様なユースケースに柔軟に対応できる可能性

More Related Content

What's hot

Unity開発で使える設計の話+Zenjectの紹介
Unity開発で使える設計の話+Zenjectの紹介Unity開発で使える設計の話+Zenjectの紹介
Unity開発で使える設計の話+Zenjectの紹介torisoup
 
プログラマが欲しい仕様書とは
プログラマが欲しい仕様書とはプログラマが欲しい仕様書とは
プログラマが欲しい仕様書とはKatsutoshi Makino
 
UniTask入門
UniTask入門UniTask入門
UniTask入門torisoup
 
【Unity道場スペシャル 2017京都】最適化をする前に覚えておきたい技術
【Unity道場スペシャル 2017京都】最適化をする前に覚えておきたい技術【Unity道場スペシャル 2017京都】最適化をする前に覚えておきたい技術
【Unity道場スペシャル 2017京都】最適化をする前に覚えておきたい技術Unity Technologies Japan K.K.
 
ヒストリア HelixCore(Perforce) 運用レギュレーションドキュメント
ヒストリア HelixCore(Perforce) 運用レギュレーションドキュメントヒストリア HelixCore(Perforce) 運用レギュレーションドキュメント
ヒストリア HelixCore(Perforce) 運用レギュレーションドキュメントhistoria_Inc
 
UniRxでMV(R)Pパターン をやってみた
UniRxでMV(R)PパターンをやってみたUniRxでMV(R)Pパターンをやってみた
UniRxでMV(R)Pパターン をやってみたtorisoup
 
目指せ脱UE4初心者!?知ってると開発が楽になる便利機能を紹介 - DataAsset, Subsystem, GameplayAbility編 -
目指せ脱UE4初心者!?知ってると開発が楽になる便利機能を紹介 - DataAsset, Subsystem, GameplayAbility編 -目指せ脱UE4初心者!?知ってると開発が楽になる便利機能を紹介 - DataAsset, Subsystem, GameplayAbility編 -
目指せ脱UE4初心者!?知ってると開発が楽になる便利機能を紹介 - DataAsset, Subsystem, GameplayAbility編 -historia_Inc
 
UE4 コリジョン検証 -HitとOverlapイベントが発生する条件について-
UE4 コリジョン検証 -HitとOverlapイベントが発生する条件について-UE4 コリジョン検証 -HitとOverlapイベントが発生する条件について-
UE4 コリジョン検証 -HitとOverlapイベントが発生する条件について-Tatsuya Iwama
 

What's hot (20)

バイキング流UE4活用術 ~BPとお別れするまでの18ヶ月~
バイキング流UE4活用術 ~BPとお別れするまでの18ヶ月~バイキング流UE4活用術 ~BPとお別れするまでの18ヶ月~
バイキング流UE4活用術 ~BPとお別れするまでの18ヶ月~
 
Unity開発で使える設計の話+Zenjectの紹介
Unity開発で使える設計の話+Zenjectの紹介Unity開発で使える設計の話+Zenjectの紹介
Unity開発で使える設計の話+Zenjectの紹介
 
プログラマが欲しい仕様書とは
プログラマが欲しい仕様書とはプログラマが欲しい仕様書とは
プログラマが欲しい仕様書とは
 
UniTask入門
UniTask入門UniTask入門
UniTask入門
 
猫でも分かる UE4のAnimation Blueprintの運用について
猫でも分かる UE4のAnimation Blueprintの運用について猫でも分かる UE4のAnimation Blueprintの運用について
猫でも分かる UE4のAnimation Blueprintの運用について
 
MetaHumanサンプル解体新書 UNREAL FEST EXTREME 2021 SUMMER
MetaHumanサンプル解体新書  UNREAL FEST EXTREME 2021 SUMMERMetaHumanサンプル解体新書  UNREAL FEST EXTREME 2021 SUMMER
MetaHumanサンプル解体新書 UNREAL FEST EXTREME 2021 SUMMER
 
60fpsアクションを実現する秘訣を伝授 基礎編
60fpsアクションを実現する秘訣を伝授 基礎編60fpsアクションを実現する秘訣を伝授 基礎編
60fpsアクションを実現する秘訣を伝授 基礎編
 
UE4とUnrealC++について
UE4とUnrealC++についてUE4とUnrealC++について
UE4とUnrealC++について
 
多機能ボイチャを簡単に導入する方法
多機能ボイチャを簡単に導入する方法多機能ボイチャを簡単に導入する方法
多機能ボイチャを簡単に導入する方法
 
【Unity道場スペシャル 2017京都】最適化をする前に覚えておきたい技術
【Unity道場スペシャル 2017京都】最適化をする前に覚えておきたい技術【Unity道場スペシャル 2017京都】最適化をする前に覚えておきたい技術
【Unity道場スペシャル 2017京都】最適化をする前に覚えておきたい技術
 
アーティストの為のプロファイル入門!~楽しいRenderDocの使い方~
アーティストの為のプロファイル入門!~楽しいRenderDocの使い方~アーティストの為のプロファイル入門!~楽しいRenderDocの使い方~
アーティストの為のプロファイル入門!~楽しいRenderDocの使い方~
 
メカアクションゲーム『DAEMON X MACHINA』 信念と血と鋼鉄の開発事例
メカアクションゲーム『DAEMON X MACHINA』 信念と血と鋼鉄の開発事例メカアクションゲーム『DAEMON X MACHINA』 信念と血と鋼鉄の開発事例
メカアクションゲーム『DAEMON X MACHINA』 信念と血と鋼鉄の開発事例
 
ヒストリア HelixCore(Perforce) 運用レギュレーションドキュメント
ヒストリア HelixCore(Perforce) 運用レギュレーションドキュメントヒストリア HelixCore(Perforce) 運用レギュレーションドキュメント
ヒストリア HelixCore(Perforce) 運用レギュレーションドキュメント
 
Fortniteを支える技術
Fortniteを支える技術Fortniteを支える技術
Fortniteを支える技術
 
UniRxでMV(R)Pパターン をやってみた
UniRxでMV(R)PパターンをやってみたUniRxでMV(R)Pパターンをやってみた
UniRxでMV(R)Pパターン をやってみた
 
CEDEC2016: Unreal Engine 4 のレンダリングフロー総おさらい
CEDEC2016: Unreal Engine 4 のレンダリングフロー総おさらいCEDEC2016: Unreal Engine 4 のレンダリングフロー総おさらい
CEDEC2016: Unreal Engine 4 のレンダリングフロー総おさらい
 
なぜなにFProperty - 対応方法と改善点 -
なぜなにFProperty - 対応方法と改善点 -なぜなにFProperty - 対応方法と改善点 -
なぜなにFProperty - 対応方法と改善点 -
 
猫でも分かるUE4を使った VRコンテンツ開発 超入門編 2021
猫でも分かるUE4を使った VRコンテンツ開発 超入門編 2021猫でも分かるUE4を使った VRコンテンツ開発 超入門編 2021
猫でも分かるUE4を使った VRコンテンツ開発 超入門編 2021
 
目指せ脱UE4初心者!?知ってると開発が楽になる便利機能を紹介 - DataAsset, Subsystem, GameplayAbility編 -
目指せ脱UE4初心者!?知ってると開発が楽になる便利機能を紹介 - DataAsset, Subsystem, GameplayAbility編 -目指せ脱UE4初心者!?知ってると開発が楽になる便利機能を紹介 - DataAsset, Subsystem, GameplayAbility編 -
目指せ脱UE4初心者!?知ってると開発が楽になる便利機能を紹介 - DataAsset, Subsystem, GameplayAbility編 -
 
UE4 コリジョン検証 -HitとOverlapイベントが発生する条件について-
UE4 コリジョン検証 -HitとOverlapイベントが発生する条件について-UE4 コリジョン検証 -HitとOverlapイベントが発生する条件について-
UE4 コリジョン検証 -HitとOverlapイベントが発生する条件について-
 

Similar to 文脈を操る美しきZenjectプロジェクトからの眺め 〜Contextの扱い方と活用方法〜

Tizen web app について調べたよ
Tizen web app について調べたよTizen web app について調べたよ
Tizen web app について調べたよNaruto TAKAHASHI
 
Rancherを活用して開発効率を上げる
Rancherを活用して開発効率を上げるRancherを活用して開発効率を上げる
Rancherを活用して開発効率を上げるMichitaka Terada
 
【Unite Tokyo 2018 Training Day】C#JobSystem & ECSでCPUを極限まで使い倒そう ~Entity Compon...
【Unite Tokyo 2018 Training Day】C#JobSystem & ECSでCPUを極限まで使い倒そう ~Entity Compon...【Unite Tokyo 2018 Training Day】C#JobSystem & ECSでCPUを極限まで使い倒そう ~Entity Compon...
【Unite Tokyo 2018 Training Day】C#JobSystem & ECSでCPUを極限まで使い倒そう ~Entity Compon...Unity Technologies Japan K.K.
 
TypeScript製フレームワーク「Nest」のご紹介
TypeScript製フレームワーク「Nest」のご紹介TypeScript製フレームワーク「Nest」のご紹介
TypeScript製フレームワーク「Nest」のご紹介bitbank, Inc. Tokyo, Japan
 
Kinectプログラミング Step by Step
Kinectプログラミング Step by StepKinectプログラミング Step by Step
Kinectプログラミング Step by StepAkira Hatsune
 
ルーター自前実装の話
ルーター自前実装の話ルーター自前実装の話
ルーター自前実装の話Kazushi Kawamura
 
Deep-Dive into Scriptable Build Pipeline
Deep-Dive into Scriptable Build PipelineDeep-Dive into Scriptable Build Pipeline
Deep-Dive into Scriptable Build PipelineHaruto Otake
 
Spring2概論@第1回JSUG勉強会
Spring2概論@第1回JSUG勉強会Spring2概論@第1回JSUG勉強会
Spring2概論@第1回JSUG勉強会Mitsuhiro Okamoto
 
KinectプログラミングStepByStep
KinectプログラミングStepByStepKinectプログラミングStepByStep
KinectプログラミングStepByStep信之 岩永
 
Node.jsアプリの開発をモダン化するために取り組んできたこと
Node.jsアプリの開発をモダン化するために取り組んできたことNode.jsアプリの開発をモダン化するために取り組んできたこと
Node.jsアプリの開発をモダン化するために取り組んできたことbitbank, Inc. Tokyo, Japan
 
Kinect Camp with TMCN / Kinect入門ハンズオン 2015.06.06
Kinect Camp with TMCN/ Kinect入門ハンズオン 2015.06.06Kinect Camp with TMCN/ Kinect入門ハンズオン 2015.06.06
Kinect Camp with TMCN / Kinect入門ハンズオン 2015.06.06Akira Hatsune
 
運用中のゲームにAIを導入するには〜プロジェクト推進・ユースケース・運用〜 [DeNA TechCon 2019]
運用中のゲームにAIを導入するには〜プロジェクト推進・ユースケース・運用〜 [DeNA TechCon 2019]運用中のゲームにAIを導入するには〜プロジェクト推進・ユースケース・運用〜 [DeNA TechCon 2019]
運用中のゲームにAIを導入するには〜プロジェクト推進・ユースケース・運用〜 [DeNA TechCon 2019]DeNA
 
Mixed Reality Toolkit V2.4.0の機能 ~ Progress Indicator ~
Mixed Reality Toolkit V2.4.0の機能 ~ Progress Indicator ~Mixed Reality Toolkit V2.4.0の機能 ~ Progress Indicator ~
Mixed Reality Toolkit V2.4.0の機能 ~ Progress Indicator ~Takahiro Miyaura
 
JaSST2017_大規模業務システムにおける再利用可能なテスト自動化の取り組み
JaSST2017_大規模業務システムにおける再利用可能なテスト自動化の取り組みJaSST2017_大規模業務システムにおける再利用可能なテスト自動化の取り組み
JaSST2017_大規模業務システムにおける再利用可能なテスト自動化の取り組みHideki Sugimoto
 
The Twelve-Factor (A|M)pp with C#
The Twelve-Factor (A|M)pp with C#The Twelve-Factor (A|M)pp with C#
The Twelve-Factor (A|M)pp with C#Yuta Matsumura
 
Rtミドルウェア講習会 第2部資料
Rtミドルウェア講習会 第2部資料Rtミドルウェア講習会 第2部資料
Rtミドルウェア講習会 第2部資料openrtm
 
Webプログラマの為のUnity入門
Webプログラマの為のUnity入門Webプログラマの為のUnity入門
Webプログラマの為のUnity入門Yusuke Ando
 
Einsteinvision - object detection を試してみよう
Einsteinvision - object detection を試してみようEinsteinvision - object detection を試してみよう
Einsteinvision - object detection を試してみようSalesforce Developers Japan
 
SYSTEMI勉強会まとめ資料(React基礎まとめ)
SYSTEMI勉強会まとめ資料(React基礎まとめ)SYSTEMI勉強会まとめ資料(React基礎まとめ)
SYSTEMI勉強会まとめ資料(React基礎まとめ)YoshikiWatanabe1
 
React Nativeで開発するマルチプラットフォームアプリ
React Nativeで開発するマルチプラットフォームアプリReact Nativeで開発するマルチプラットフォームアプリ
React Nativeで開発するマルチプラットフォームアプリMasayuki Iwai
 

Similar to 文脈を操る美しきZenjectプロジェクトからの眺め 〜Contextの扱い方と活用方法〜 (20)

Tizen web app について調べたよ
Tizen web app について調べたよTizen web app について調べたよ
Tizen web app について調べたよ
 
Rancherを活用して開発効率を上げる
Rancherを活用して開発効率を上げるRancherを活用して開発効率を上げる
Rancherを活用して開発効率を上げる
 
【Unite Tokyo 2018 Training Day】C#JobSystem & ECSでCPUを極限まで使い倒そう ~Entity Compon...
【Unite Tokyo 2018 Training Day】C#JobSystem & ECSでCPUを極限まで使い倒そう ~Entity Compon...【Unite Tokyo 2018 Training Day】C#JobSystem & ECSでCPUを極限まで使い倒そう ~Entity Compon...
【Unite Tokyo 2018 Training Day】C#JobSystem & ECSでCPUを極限まで使い倒そう ~Entity Compon...
 
TypeScript製フレームワーク「Nest」のご紹介
TypeScript製フレームワーク「Nest」のご紹介TypeScript製フレームワーク「Nest」のご紹介
TypeScript製フレームワーク「Nest」のご紹介
 
Kinectプログラミング Step by Step
Kinectプログラミング Step by StepKinectプログラミング Step by Step
Kinectプログラミング Step by Step
 
ルーター自前実装の話
ルーター自前実装の話ルーター自前実装の話
ルーター自前実装の話
 
Deep-Dive into Scriptable Build Pipeline
Deep-Dive into Scriptable Build PipelineDeep-Dive into Scriptable Build Pipeline
Deep-Dive into Scriptable Build Pipeline
 
Spring2概論@第1回JSUG勉強会
Spring2概論@第1回JSUG勉強会Spring2概論@第1回JSUG勉強会
Spring2概論@第1回JSUG勉強会
 
KinectプログラミングStepByStep
KinectプログラミングStepByStepKinectプログラミングStepByStep
KinectプログラミングStepByStep
 
Node.jsアプリの開発をモダン化するために取り組んできたこと
Node.jsアプリの開発をモダン化するために取り組んできたことNode.jsアプリの開発をモダン化するために取り組んできたこと
Node.jsアプリの開発をモダン化するために取り組んできたこと
 
Kinect Camp with TMCN / Kinect入門ハンズオン 2015.06.06
Kinect Camp with TMCN/ Kinect入門ハンズオン 2015.06.06Kinect Camp with TMCN/ Kinect入門ハンズオン 2015.06.06
Kinect Camp with TMCN / Kinect入門ハンズオン 2015.06.06
 
運用中のゲームにAIを導入するには〜プロジェクト推進・ユースケース・運用〜 [DeNA TechCon 2019]
運用中のゲームにAIを導入するには〜プロジェクト推進・ユースケース・運用〜 [DeNA TechCon 2019]運用中のゲームにAIを導入するには〜プロジェクト推進・ユースケース・運用〜 [DeNA TechCon 2019]
運用中のゲームにAIを導入するには〜プロジェクト推進・ユースケース・運用〜 [DeNA TechCon 2019]
 
Mixed Reality Toolkit V2.4.0の機能 ~ Progress Indicator ~
Mixed Reality Toolkit V2.4.0の機能 ~ Progress Indicator ~Mixed Reality Toolkit V2.4.0の機能 ~ Progress Indicator ~
Mixed Reality Toolkit V2.4.0の機能 ~ Progress Indicator ~
 
JaSST2017_大規模業務システムにおける再利用可能なテスト自動化の取り組み
JaSST2017_大規模業務システムにおける再利用可能なテスト自動化の取り組みJaSST2017_大規模業務システムにおける再利用可能なテスト自動化の取り組み
JaSST2017_大規模業務システムにおける再利用可能なテスト自動化の取り組み
 
The Twelve-Factor (A|M)pp with C#
The Twelve-Factor (A|M)pp with C#The Twelve-Factor (A|M)pp with C#
The Twelve-Factor (A|M)pp with C#
 
Rtミドルウェア講習会 第2部資料
Rtミドルウェア講習会 第2部資料Rtミドルウェア講習会 第2部資料
Rtミドルウェア講習会 第2部資料
 
Webプログラマの為のUnity入門
Webプログラマの為のUnity入門Webプログラマの為のUnity入門
Webプログラマの為のUnity入門
 
Einsteinvision - object detection を試してみよう
Einsteinvision - object detection を試してみようEinsteinvision - object detection を試してみよう
Einsteinvision - object detection を試してみよう
 
SYSTEMI勉強会まとめ資料(React基礎まとめ)
SYSTEMI勉強会まとめ資料(React基礎まとめ)SYSTEMI勉強会まとめ資料(React基礎まとめ)
SYSTEMI勉強会まとめ資料(React基礎まとめ)
 
React Nativeで開発するマルチプラットフォームアプリ
React Nativeで開発するマルチプラットフォームアプリReact Nativeで開発するマルチプラットフォームアプリ
React Nativeで開発するマルチプラットフォームアプリ
 

文脈を操る美しきZenjectプロジェクトからの眺め 〜Contextの扱い方と活用方法〜