SlideShare uma empresa Scribd logo
1 de 95
Baixar para ler offline
UniTask⼊⾨
2019/07/20
とりすーぷ
⾃⼰紹介
• とりすーぷ
• @toRisouP
• バーチャルキャスト社
• Unityエンジニア
• 最近はサーバ開発
• MagicOnion, k8s
• Microsoft MVP 2018〜
• Developer Technology
今回の内容「UniTask」
• UniTaskの概要
• UniTaskの使い⽅
• 機能紹介
• キャンセル管理について
UniTaskの概要
UniTaskとは
•Unity向けasync/await拡張ライブラリ
• Unityの標準機能ではない、⾃分で導⼊が必要な外部ライブラリ
• 株式会社Cysharpさんが提供
• 主開発はneuecc⽒(UniRxの作者)
• 前はUniRxの⼀部だったが、後に分離したライブラリ化された
• その名残で名前空間が「UniRx.Async」のまま
UniTaskでできること
• 「async/awaitでなんでもできるようになる」
• コルーチンをasync/awaitに置き換え
• Unityイベント関数のawait
• UnityEditor上でawait状況の可視化
例:コルーチンの置き換え
例:コルーチンの置き換え
コルーチンから結果を取りだすためのデリゲート
例:コルーチン -> UniTask
例:コルーチン -> UniTask
例:コルーチン -> UniTask
結果はそのままreturnすればOK
例外もthrowするだけ
UniTaskを使うメリット
• コルーチンを使う必要がなくなる
• より使いやすいasync/awaitですべてを記述できる
• 既存のTaskよりもハイパフォーマンス
• Unityに最適化されたTask-likeな機構が使える
• UniRxよりはわかりやすい
• ⼿続き処理で書ける、は⼗分メリット
導⼊⽅法
• GitHubからunitypackageをダウンロードしてインポート
• https://github.com/Cysharp/UniTask/releases
• AssetStoreにはまだ公開されていない
UniTaskが使える条件
• C# 7以降が使えるUnityであること
• Unity 2018.3 以降
• Unity 2018.2 以前はIncremental Compilerを導⼊していると使える
UniTaskの機能紹介
UniTaskが提供する機能
• UniTask型、UniTask<T>型
• UniTaskに付随するstaticメソッド群
• Unity機能のAwaiter
• UniTaskTracker
UniTaskが提供する機能
• UniTask型、UniTask<T>型
• UniTaskに付随するstaticメソッド群
• Unity機能のAwaiter
• UniTaskTracker
UniTask型/UniTask<T>型
UniTaskの機能紹介
UniTask型/UniTask<T>型
• Unity⽤に最適化されたTask-likeオブジェクト
• Task/Task<T>のUnity向け実装
• Taskの基本機能はだいたい使える
Task型 vs UniTask型
Task UniTask
機能 Unityでは不要な機能が多い Unityで活⽤できる機能のみ
オブジェクトサイズ ムダに⼤きい ⼩さい
実⾏コンテキスト管理
TaskScheduler &
SynchronizationContext
PlayerLoop
必要なC# version C# 5.0以上 C# 7.0以上
Task Tracker 無 Unity Editor上で利⽤可能
UniTask型の作り⽅
作り⽅は主に3パターン
・async/awaitの戻り値として使う
・UniTaskCompletionSourceから作る
・Observableから変換する
UniTask型の作り⽅
作り⽅は主に3パターン
・async/awaitの戻り値として使う
・UniTaskCompletionSourceから作る
・Observableから変換する
例: async/awaitから作る
• async/awaitの戻り値をUniTaskに書き換えるだけでOK
• これだけでTask型からUniTask型に変換される
例: async/awaitから作る
• ジェネリック版のときも同様
• Task<T> を UniTask<T> に置き換えるだけ
(補⾜) UniTaskVoid型
• UniTaskの機構に乗った ”async void”
• 投げっぱなし(Fire-and-forget)の⾮同期処理として使う
UniTask型の作り⽅
作り⽅は主に3パターン
・async/awaitの戻り値として使う
・UniTaskCompletionSourceから作る
・Observableから変換する
UniTaskCompletionSource
• ⼿続き処理でUniTaskを⽣成するときに使う
• UniRxのAsyncSubjectとだいたい同じ
UniTaskCompletionSource
UniTask型の作り⽅
作り⽅は主に3パターン
・async/awaitの戻り値として使う
・UniTaskCompletionSourceから作る
・Observableから変換する
Observableからの変換
• UniTaskとObservable(UniRx)は相互変換可能
注意点1
• Observableが必ず完了する状態にすること
• useFirstValue=true でTake(1)と同等になる
注意点2
• UniTask -> Observable 時、
実⾏コンテキストは必ずメインスレッドになる
UniTask/UniTask<T>型 まとめ
• 使い勝⼿は標準Taskとほとんど同じ
• 既存のasyncメソッドを機械的に置換して問題ない
• Observableが絡む時だけちょっと注意が必要
UniTaskが提供する機能
• UniTask型、UniTask<T>型
• UniTaskに付随するstaticメソッド群
• Unity機能のAwaiter
• UniTaskTracker
Staticメソッド群
UniTaskの機能紹介
UniTaskに付随するstaticメソッド群
• 特殊な挙動をするUniTaskを⽣成できるメソッド群
• FactoryMethod的なやつ
• ほとんどがawaitとの併⽤がメイン
UniTask.Run
• デリゲートをThreadPool上で実⾏する
• Task.Runと挙動はおなじ
• await後はUnityメインスレッドに戻る(configureAwait = true の時)
UniTask.Delay
• 指定秒数後に完了するUniTaskを⽣成する
• awaitすることで「⼀定時間待つ」ができる
• どのタイミングで時間計測するか選べる
• デフォルトはUpdate()タイミングで計測
UniTask.DelayFrame
• 指定フレーム後に完了するUniTaskを⽣成する
• awaitすることで「⼀定フレーム待つ」ができる
• どのタイミングで計測するか選べる
• デフォルトはUpdate()タイミング
UniTask.Yield()
• 指定のタイミングで1フレーム待機する
• 処理をメインスレッドに戻すことにも使える
• 引数なしの場合はUpdateタイミングで1フレーム待機になる
UniTask.Yield
UniTask.SwitchToThreadPool
• 実⾏コンテキストをThreadPoolに切り替える
• awaitするとそれ以降がThreadPool上での処理になる
• 似たものでSwitchToTaskPoolがあるが、こっちは⾮推奨
UniTask.SwitchToThreadPool
UniTask.SwitchToMainThread
• 実⾏コンテキストをメインスレッドに切り替える
• awaitするとそれ以降がメインスレッド上での処理になる
• UniTask.Yield(PlayerLoopTiming.Update)と微妙に挙動が異なる
UniTask.WaitUntil / UniTask.WaitWhile
• 条件を満たすまで/満たさなくなるまで待機する
• コルーチンのWaitUntil/WaitWhileと同等
• どのPlayerLoopタイミングでチェックするかも指定できる
UniTask.WaitUntil / UniTask.WaitWhile
UniTask.WaitUntilValueChanged
• 指定のオブジェクトのパラメータが変動するまで待機する
• UniRxのObserveEveryValueChangedと同じ
• 対象は弱参照で保持され、GCされるとawaitはキャンセルされる
UniTask.WhenAll
• 指定のUniTaskがすべて完了するまで待機する
• UniTask<T>の型がすべて⼀致していなくてもOK
UniTask.WhenAll
UniTask.WhenAny
• 複数のUniTaskのうちどれか1つが先に完了するまで待機する
Staticメソッド群 まとめ
• Unity向けに調整された機能が多くて便利
• 標準Taskとくらべて使いやすくなってたりもする
• まだまだあるけど量が多いので省略
UniTaskが提供する機能
• UniTask型、UniTask<T>型
• UniTaskに付随するstaticメソッド群
• Unity機能のAwaiter
• UniTaskTracker
Awaiter
UniTaskの機能紹介
Awaiterって何
• オブジェクトのawaitに必要なヤツ
• あるオブジェクトにGetAwaiter()メソッドが実装されており、
そこからAwaiterが取得できるならそのオブジェクトはawaitができる
補⾜:GetAwaiter()
• Awaiterを取得するためのメソッド
• クラスメソッドだけでなく、拡張メソッドでもOK
• ⾃前で実装すればなんでもawaitできるようになる
awaitにカーソルを合わせて定義元を参照するとどのGetAwaiter()が呼ばれるかわかる
UniTaskとAwaiter
• UniTaskはUnityのあらゆるオブジェクトの
Awaiterを提供してくれる
UniTaskが提供するAwaiter
• コルーチン
• AsyncOperation
• uGUI Event
• Unityコールバック
• JobHandle
• UnityEvent
コルーチンのAwaiter
• IEnumeratorをawaitするとコルーチンとして実⾏&待機する
コルーチンのAwaiter
(補⾜)コルーチン上でUniTask
• ToCoroutine()でUniTaskをコルーチン化もできる
AsyncOperationのAwaiter
AsyncOperationのAwaiter
• ConfigureAwaitで進⾏状況取得可能
uGUI EventのAwaiter
※using UniRx.Async.Triggers が必要
UnityコールバックのAwaiter
• MonoBehaviourに⾶んでくるイベントコールバックのこと
※using UniRx.Async.Triggers が必要
Awaiter まとめ
• Unityのあらゆる要素がawait可能になる
• コルーチンの上位互換としてasync/awaitが利⽤可能になる
UniTaskが提供する機能
• UniTask型、UniTask<T>型
• UniTaskに付随するstaticメソッド群
• Unity機能のAwaiter
• UniTaskTracker
UniTaskTracker
UniTaskの機能紹介
UniTaskTracker
• await中のUniTaskを可視化するEditor拡張
• Unity Editorの [Window] -> [UniRx] -> [UniTask Tracker]
• UniTaskがリークしていないか確認できる
UniTaskとキャンセル
⾮同期処理とキャンセル
• ⾮同期処理はキャンセルを常に考慮しなくてはいけない
• もろもろの理由で不要になった時に
実⾏中の処理を⽌めないといけない
UniTaskとキャンセル
• UniTaskを使う上でも当然キャンセルの実装が必要
• リソースの解放、適切なタイミングでの停⽌、漏れのない中断、
これらは⼈間が考えて実装する必要がある
適切にキャンセルするために
• CancellationToken
• OperationCanceledException
適切にキャンセルするために
• CancellationToken
• OperationCanceledException
CancellationToken
• ⾮同期処理にキャンセルを通知するためのC#標準機能
• 「キャンセル要求されたか?」のフラグを持つオブジェクト
CancellationToken
CancellationToken
CanellationTokenSourceから⽣成
CancellationToken
if⽂で判定
if( IsCancellationRequested ) throw new OperationCanceledException();
の省略記法
補⾜: GetCancellationTokenOnDestroy()
UniTaskとCancellationToken
• UniTaskはCancellationTokenを使ってキャンセル判定を⾏う
• キャンセル要求がくるとUniTaskはキャンセル状態になる
• await中の場合はそこで処理が終了しawait以降は実⾏されない
CancellationTokenは省略しない
• 「めんどくさいからキャンセル処理を書かない」はNG
Tokenが渡せない処理の場合のキャンセル
• CancellationTokenの状態を⼿動で確認する
• どのタイミングで処理を⽌めるのか、は⾃分で考える
• キャンセル時はOperationCanceledExceptionを発⾏すればOK
⼿動でキャンセルチェックする例
適切にキャンセルするために
• CancellationToken
• OperationCanceledException
OperationCanceledException
• UniTaskをキャンセル状態にするための特殊扱いな例外
• この例外が投げられるとUniTaskは「キャンセル状態」になる
• この例外はエラーログに出ない
Throwするタイミング
• キャンセル要求が外部からされた時にthrowする
• 外から「処理を⽌めてね」って⾔われた時に投げる例外
• ⾃⼰判断で勝⼿に投げてよい例外ではない
キャンセル要求
• キャンセル要求はCancellationTokenを通じて送られる
• ThrowIfCancellationRequested()が便利
キャンセルを上流まで伝播させる
• この例外は上流まで“貫通”させる
• try-catchを書くときはOperationCanceledExceptionだけ
素通りするようにしておく
キャンセルを上流まで伝播させる
• この例外は上流まで“貫通”させる
• try-catchを書くときはOperationCanceledExceptionだけ
素通りするようにしておく
悪⽤しない
• キャンセル⽤途以外では利⽤しないこと
• 本来の⽤途とは別の使い⽅をすると、そこから負債になる
• 「処理に失敗したときにエラーログに出したくないから、
OperationCanceledException使っちゃおう」みたいなのはNG
UniTaskとキャンセル まとめ
• CancellationTokenは可能な限り指定する
• OperationCanceledExceptionは特殊なので扱いに注意
最後のまとめ
UniTask、結局何に使えばいいの?
• 深く考えず使えそうなところでどんどん使おう
• コルーチンの代替として使える
• 他のコンポーネントが処理を終えるのを待つ、とかにも使える
• むしろUniTaskが使えないことがストレスになるくらいには便利
他の⾮同期処理との使い分けは?
• async/awaitを使うなら、UniTaskをまず使う
• 理由が無い限り標準Taskは使わない
• UniRx(Observable)は⽤途に応じて使う
• Observableはイベント処理や、結果が複数になる⾮同期処理向け
• Observableもawait可能だし、UniTaskとの相互変換もできる
まとめ
• UniTaskめっちゃ便利だから使おう!!!!
• あと今回の話の補⾜的なのをUniBook11に書きました
• さらにUniRx+UniTask本、マダカイテルカラマッテネ…

Mais conteúdo relacionado

Mais procurados

UnityでUI開発を高速化した件
UnityでUI開発を高速化した件UnityでUI開発を高速化した件
UnityでUI開発を高速化した件Grenge, Inc.
 
【Unite Tokyo 2019】Understanding C# Struct All Things
【Unite Tokyo 2019】Understanding C# Struct All Things【Unite Tokyo 2019】Understanding C# Struct All Things
【Unite Tokyo 2019】Understanding C# Struct All ThingsUnityTechnologiesJapan002
 
ネットワーク ゲームにおけるTCPとUDPの使い分け
ネットワーク ゲームにおけるTCPとUDPの使い分けネットワーク ゲームにおけるTCPとUDPの使い分け
ネットワーク ゲームにおけるTCPとUDPの使い分けモノビット エンジン
 
【Unity道場Houdini編】Houdini Engine とプロシージャル法
【Unity道場Houdini編】Houdini Engine とプロシージャル法【Unity道場Houdini編】Houdini Engine とプロシージャル法
【Unity道場Houdini編】Houdini Engine とプロシージャル法UnityTechnologiesJapan002
 
目指せ脱UE4初心者!?知ってると開発が楽になる便利機能を紹介 - DataAsset, Subsystem, GameplayAbility編 -
目指せ脱UE4初心者!?知ってると開発が楽になる便利機能を紹介 - DataAsset, Subsystem, GameplayAbility編 -目指せ脱UE4初心者!?知ってると開発が楽になる便利機能を紹介 - DataAsset, Subsystem, GameplayAbility編 -
目指せ脱UE4初心者!?知ってると開発が楽になる便利機能を紹介 - DataAsset, Subsystem, GameplayAbility編 -historia_Inc
 
【Unite Tokyo 2018】さては非同期だなオメー!async/await完全に理解しよう
【Unite Tokyo 2018】さては非同期だなオメー!async/await完全に理解しよう【Unite Tokyo 2018】さては非同期だなオメー!async/await完全に理解しよう
【Unite Tokyo 2018】さては非同期だなオメー!async/await完全に理解しようUnity Technologies Japan K.K.
 
MagicOnion入門
MagicOnion入門MagicOnion入門
MagicOnion入門torisoup
 
【CEDEC2017】Unityを使ったNintendo Switch™向けのタイトル開発・移植テクニック!!
【CEDEC2017】Unityを使ったNintendo Switch™向けのタイトル開発・移植テクニック!!【CEDEC2017】Unityを使ったNintendo Switch™向けのタイトル開発・移植テクニック!!
【CEDEC2017】Unityを使ったNintendo Switch™向けのタイトル開発・移植テクニック!!Unity Technologies Japan K.K.
 
Unityでオニオンアーキテクチャ
UnityでオニオンアーキテクチャUnityでオニオンアーキテクチャ
Unityでオニオンアーキテクチャtorisoup
 
【Unite 2017 Tokyo】最適化をする前に覚えておきたい技術
【Unite 2017 Tokyo】最適化をする前に覚えておきたい技術【Unite 2017 Tokyo】最適化をする前に覚えておきたい技術
【Unite 2017 Tokyo】最適化をする前に覚えておきたい技術Unity Technologies Japan K.K.
 
コールバックと戦う話
コールバックと戦う話コールバックと戦う話
コールバックと戦う話torisoup
 
【Unity道場】AssetGraph入門 〜ノードを駆使しててUnityの面倒な手作業を自動化する方法〜
【Unity道場】AssetGraph入門 〜ノードを駆使しててUnityの面倒な手作業を自動化する方法〜【Unity道場】AssetGraph入門 〜ノードを駆使しててUnityの面倒な手作業を自動化する方法〜
【Unity道場】AssetGraph入門 〜ノードを駆使しててUnityの面倒な手作業を自動化する方法〜Unity Technologies Japan K.K.
 
[UE4]自動テストでもっと楽したい!
[UE4]自動テストでもっと楽したい![UE4]自動テストでもっと楽したい!
[UE4]自動テストでもっと楽したい!com044
 
MVPパターンによる設計アプローチ「あなたのアプリ報連相できてますか」
MVPパターンによる設計アプローチ「あなたのアプリ報連相できてますか」MVPパターンによる設計アプローチ「あなたのアプリ報連相できてますか」
MVPパターンによる設計アプローチ「あなたのアプリ報連相できてますか」U-dai Yokoyama
 
Unityによるリアルタイム通信とMagicOnionによるC#大統一理論の実現
Unityによるリアルタイム通信とMagicOnionによるC#大統一理論の実現Unityによるリアルタイム通信とMagicOnionによるC#大統一理論の実現
Unityによるリアルタイム通信とMagicOnionによるC#大統一理論の実現Yoshifumi Kawai
 
脱UniRx&Croutineから始めるUniTask
脱UniRx&Croutineから始めるUniTask脱UniRx&Croutineから始めるUniTask
脱UniRx&Croutineから始めるUniTaskEuglenaching
 
Assembly Definition あれやこれ
Assembly Definition あれやこれAssembly Definition あれやこれ
Assembly Definition あれやこれNakanoYosuke1
 

Mais procurados (20)

UnityでUI開発を高速化した件
UnityでUI開発を高速化した件UnityでUI開発を高速化した件
UnityでUI開発を高速化した件
 
【Unite Tokyo 2019】Understanding C# Struct All Things
【Unite Tokyo 2019】Understanding C# Struct All Things【Unite Tokyo 2019】Understanding C# Struct All Things
【Unite Tokyo 2019】Understanding C# Struct All Things
 
猫でも分かるUMG
猫でも分かるUMG猫でも分かるUMG
猫でも分かるUMG
 
ネットワーク ゲームにおけるTCPとUDPの使い分け
ネットワーク ゲームにおけるTCPとUDPの使い分けネットワーク ゲームにおけるTCPとUDPの使い分け
ネットワーク ゲームにおけるTCPとUDPの使い分け
 
【Unity道場Houdini編】Houdini Engine とプロシージャル法
【Unity道場Houdini編】Houdini Engine とプロシージャル法【Unity道場Houdini編】Houdini Engine とプロシージャル法
【Unity道場Houdini編】Houdini Engine とプロシージャル法
 
目指せ脱UE4初心者!?知ってると開発が楽になる便利機能を紹介 - DataAsset, Subsystem, GameplayAbility編 -
目指せ脱UE4初心者!?知ってると開発が楽になる便利機能を紹介 - DataAsset, Subsystem, GameplayAbility編 -目指せ脱UE4初心者!?知ってると開発が楽になる便利機能を紹介 - DataAsset, Subsystem, GameplayAbility編 -
目指せ脱UE4初心者!?知ってると開発が楽になる便利機能を紹介 - DataAsset, Subsystem, GameplayAbility編 -
 
【Unite Tokyo 2018】さては非同期だなオメー!async/await完全に理解しよう
【Unite Tokyo 2018】さては非同期だなオメー!async/await完全に理解しよう【Unite Tokyo 2018】さては非同期だなオメー!async/await完全に理解しよう
【Unite Tokyo 2018】さては非同期だなオメー!async/await完全に理解しよう
 
MagicOnion入門
MagicOnion入門MagicOnion入門
MagicOnion入門
 
【CEDEC2017】Unityを使ったNintendo Switch™向けのタイトル開発・移植テクニック!!
【CEDEC2017】Unityを使ったNintendo Switch™向けのタイトル開発・移植テクニック!!【CEDEC2017】Unityを使ったNintendo Switch™向けのタイトル開発・移植テクニック!!
【CEDEC2017】Unityを使ったNintendo Switch™向けのタイトル開発・移植テクニック!!
 
UE4でマルチプレイヤーゲームを作ろう
UE4でマルチプレイヤーゲームを作ろうUE4でマルチプレイヤーゲームを作ろう
UE4でマルチプレイヤーゲームを作ろう
 
Unityでオニオンアーキテクチャ
UnityでオニオンアーキテクチャUnityでオニオンアーキテクチャ
Unityでオニオンアーキテクチャ
 
【Unite 2017 Tokyo】最適化をする前に覚えておきたい技術
【Unite 2017 Tokyo】最適化をする前に覚えておきたい技術【Unite 2017 Tokyo】最適化をする前に覚えておきたい技術
【Unite 2017 Tokyo】最適化をする前に覚えておきたい技術
 
コールバックと戦う話
コールバックと戦う話コールバックと戦う話
コールバックと戦う話
 
【Unity道場】AssetGraph入門 〜ノードを駆使しててUnityの面倒な手作業を自動化する方法〜
【Unity道場】AssetGraph入門 〜ノードを駆使しててUnityの面倒な手作業を自動化する方法〜【Unity道場】AssetGraph入門 〜ノードを駆使しててUnityの面倒な手作業を自動化する方法〜
【Unity道場】AssetGraph入門 〜ノードを駆使しててUnityの面倒な手作業を自動化する方法〜
 
[UE4]自動テストでもっと楽したい!
[UE4]自動テストでもっと楽したい![UE4]自動テストでもっと楽したい!
[UE4]自動テストでもっと楽したい!
 
MVPパターンによる設計アプローチ「あなたのアプリ報連相できてますか」
MVPパターンによる設計アプローチ「あなたのアプリ報連相できてますか」MVPパターンによる設計アプローチ「あなたのアプリ報連相できてますか」
MVPパターンによる設計アプローチ「あなたのアプリ報連相できてますか」
 
Unityによるリアルタイム通信とMagicOnionによるC#大統一理論の実現
Unityによるリアルタイム通信とMagicOnionによるC#大統一理論の実現Unityによるリアルタイム通信とMagicOnionによるC#大統一理論の実現
Unityによるリアルタイム通信とMagicOnionによるC#大統一理論の実現
 
UE4で作成するUIと最適化手法
UE4で作成するUIと最適化手法UE4で作成するUIと最適化手法
UE4で作成するUIと最適化手法
 
脱UniRx&Croutineから始めるUniTask
脱UniRx&Croutineから始めるUniTask脱UniRx&Croutineから始めるUniTask
脱UniRx&Croutineから始めるUniTask
 
Assembly Definition あれやこれ
Assembly Definition あれやこれAssembly Definition あれやこれ
Assembly Definition あれやこれ
 

Semelhante a UniTask入門

平成生まれのための MINIX 講座
平成生まれのための MINIX 講座平成生まれのための MINIX 講座
平成生まれのための MINIX 講座TAKANO Mitsuhiro
 
OpenStack Summit Austin 2016 参加報告 - OpenStack最新情報セミナー 2016年5月
OpenStack Summit Austin 2016 参加報告 - OpenStack最新情報セミナー 2016年5月OpenStack Summit Austin 2016 参加報告 - OpenStack最新情報セミナー 2016年5月
OpenStack Summit Austin 2016 参加報告 - OpenStack最新情報セミナー 2016年5月VirtualTech Japan Inc.
 
日本OpenStackユーザ会第40回勉強会 Nova最新動向
日本OpenStackユーザ会第40回勉強会 Nova最新動向日本OpenStackユーザ会第40回勉強会 Nova最新動向
日本OpenStackユーザ会第40回勉強会 Nova最新動向Takashi Natsume
 
serverless openstack 101
serverless openstack 101serverless openstack 101
serverless openstack 101Naoto Gohko
 
ISUCON夏期講習2015_2 実践編
ISUCON夏期講習2015_2 実践編ISUCON夏期講習2015_2 実践編
ISUCON夏期講習2015_2 実践編SATOSHI TAGOMORI
 
OpenStack概要 ~仮想ネットワーク~
OpenStack概要 ~仮想ネットワーク~OpenStack概要 ~仮想ネットワーク~
OpenStack概要 ~仮想ネットワーク~Masaya Aoyama
 
Infrastructure as code ~ ツールスタック / ヌーラボの事例 ~
Infrastructure as code ~ ツールスタック / ヌーラボの事例 ~Infrastructure as code ~ ツールスタック / ヌーラボの事例 ~
Infrastructure as code ~ ツールスタック / ヌーラボの事例 ~ikikko
 
H26第1回 沖縄オープンラボラトリ・ハンズオンセミナー:OpenStack入門
H26第1回 沖縄オープンラボラトリ・ハンズオンセミナー:OpenStack入門H26第1回 沖縄オープンラボラトリ・ハンズオンセミナー:OpenStack入門
H26第1回 沖縄オープンラボラトリ・ハンズオンセミナー:OpenStack入門Etsuji Nakai
 
Code4Lib 2010報告会・発表ダイジェスト
Code4Lib 2010報告会・発表ダイジェストCode4Lib 2010報告会・発表ダイジェスト
Code4Lib 2010報告会・発表ダイジェストMasao Takaku
 
Cumulus Linux 導入事例 -ネットワークをDevOpsに統合した、エンジニアが幸せになるインフラ運用手法のご紹介-
Cumulus Linux 導入事例 -ネットワークをDevOpsに統合した、エンジニアが幸せになるインフラ運用手法のご紹介-Cumulus Linux 導入事例 -ネットワークをDevOpsに統合した、エンジニアが幸せになるインフラ運用手法のご紹介-
Cumulus Linux 導入事例 -ネットワークをDevOpsに統合した、エンジニアが幸せになるインフラ運用手法のご紹介-Takashi Sogabe
 
Unix architecture
Unix architectureUnix architecture
Unix architectureraw-hide
 
OpenStack summit report 2016 in barcelona
OpenStack summit report 2016 in barcelonaOpenStack summit report 2016 in barcelona
OpenStack summit report 2016 in barcelonaYuki Yamashita
 
OpenStack最新動向 2016/2
OpenStack最新動向 2016/2OpenStack最新動向 2016/2
OpenStack最新動向 2016/2Akira Yoshiyama
 
Tizen の未来と可能性
Tizen の未来と可能性Tizen の未来と可能性
Tizen の未来と可能性Naruto TAKAHASHI
 

Semelhante a UniTask入門 (20)

平成生まれのための MINIX 講座
平成生まれのための MINIX 講座平成生まれのための MINIX 講座
平成生まれのための MINIX 講座
 
オープンソースの来し方行く末@OSC 2016 Okinawa
オープンソースの来し方行く末@OSC 2016 Okinawaオープンソースの来し方行く末@OSC 2016 Okinawa
オープンソースの来し方行く末@OSC 2016 Okinawa
 
オープンソースの来し方行く末@OSC 2016 Hokkaido
オープンソースの来し方行く末@OSC 2016 Hokkaidoオープンソースの来し方行く末@OSC 2016 Hokkaido
オープンソースの来し方行く末@OSC 2016 Hokkaido
 
オープンソースの来し方行く末@OSC 2016 Nagaoka
オープンソースの来し方行く末@OSC 2016 Nagaokaオープンソースの来し方行く末@OSC 2016 Nagaoka
オープンソースの来し方行く末@OSC 2016 Nagaoka
 
OpenStack Summit Austin 2016 参加報告 - OpenStack最新情報セミナー 2016年5月
OpenStack Summit Austin 2016 参加報告 - OpenStack最新情報セミナー 2016年5月OpenStack Summit Austin 2016 参加報告 - OpenStack最新情報セミナー 2016年5月
OpenStack Summit Austin 2016 参加報告 - OpenStack最新情報セミナー 2016年5月
 
日本OpenStackユーザ会第40回勉強会 Nova最新動向
日本OpenStackユーザ会第40回勉強会 Nova最新動向日本OpenStackユーザ会第40回勉強会 Nova最新動向
日本OpenStackユーザ会第40回勉強会 Nova最新動向
 
serverless openstack 101
serverless openstack 101serverless openstack 101
serverless openstack 101
 
ISUCON夏期講習2015_2 実践編
ISUCON夏期講習2015_2 実践編ISUCON夏期講習2015_2 実践編
ISUCON夏期講習2015_2 実践編
 
Tizen & Crosswalk
Tizen & CrosswalkTizen & Crosswalk
Tizen & Crosswalk
 
OpenStack概要 ~仮想ネットワーク~
OpenStack概要 ~仮想ネットワーク~OpenStack概要 ~仮想ネットワーク~
OpenStack概要 ~仮想ネットワーク~
 
Infrastructure as code ~ ツールスタック / ヌーラボの事例 ~
Infrastructure as code ~ ツールスタック / ヌーラボの事例 ~Infrastructure as code ~ ツールスタック / ヌーラボの事例 ~
Infrastructure as code ~ ツールスタック / ヌーラボの事例 ~
 
H26第1回 沖縄オープンラボラトリ・ハンズオンセミナー:OpenStack入門
H26第1回 沖縄オープンラボラトリ・ハンズオンセミナー:OpenStack入門H26第1回 沖縄オープンラボラトリ・ハンズオンセミナー:OpenStack入門
H26第1回 沖縄オープンラボラトリ・ハンズオンセミナー:OpenStack入門
 
Code4Lib 2010報告会・発表ダイジェスト
Code4Lib 2010報告会・発表ダイジェストCode4Lib 2010報告会・発表ダイジェスト
Code4Lib 2010報告会・発表ダイジェスト
 
Cumulus Linux 導入事例 -ネットワークをDevOpsに統合した、エンジニアが幸せになるインフラ運用手法のご紹介-
Cumulus Linux 導入事例 -ネットワークをDevOpsに統合した、エンジニアが幸せになるインフラ運用手法のご紹介-Cumulus Linux 導入事例 -ネットワークをDevOpsに統合した、エンジニアが幸せになるインフラ運用手法のご紹介-
Cumulus Linux 導入事例 -ネットワークをDevOpsに統合した、エンジニアが幸せになるインフラ運用手法のご紹介-
 
Unix architecture
Unix architectureUnix architecture
Unix architecture
 
Zynga
ZyngaZynga
Zynga
 
Aws privte20110406 arai
Aws privte20110406 araiAws privte20110406 arai
Aws privte20110406 arai
 
OpenStack summit report 2016 in barcelona
OpenStack summit report 2016 in barcelonaOpenStack summit report 2016 in barcelona
OpenStack summit report 2016 in barcelona
 
OpenStack最新動向 2016/2
OpenStack最新動向 2016/2OpenStack最新動向 2016/2
OpenStack最新動向 2016/2
 
Tizen の未来と可能性
Tizen の未来と可能性Tizen の未来と可能性
Tizen の未来と可能性
 

Mais de torisoup

Doozy UI 使おうぜ! #unity_lt
Doozy UI 使おうぜ! #unity_ltDoozy UI 使おうぜ! #unity_lt
Doozy UI 使おうぜ! #unity_lttorisoup
 
MagicOnion~C#でゲームサーバを開発しよう~
MagicOnion~C#でゲームサーバを開発しよう~MagicOnion~C#でゲームサーバを開発しよう~
MagicOnion~C#でゲームサーバを開発しよう~torisoup
 
Unityで作ったゲームをDLカードで配布してみた話 #roppongiunity
Unityで作ったゲームをDLカードで配布してみた話 #roppongiunityUnityで作ったゲームをDLカードで配布してみた話 #roppongiunity
Unityで作ったゲームをDLカードで配布してみた話 #roppongiunitytorisoup
 
ARでVRアバターを表示するシステムを構築しよう
ARでVRアバターを表示するシステムを構築しようARでVRアバターを表示するシステムを構築しよう
ARでVRアバターを表示するシステムを構築しようtorisoup
 
【Unity】 Behavior TreeでAIを作る
 【Unity】 Behavior TreeでAIを作る 【Unity】 Behavior TreeでAIを作る
【Unity】 Behavior TreeでAIを作るtorisoup
 
ObserverパターンからはじめるUniRx
ObserverパターンからはじめるUniRx ObserverパターンからはじめるUniRx
ObserverパターンからはじめるUniRx torisoup
 
Photon Cloud ことはじめ
Photon Cloud ことはじめPhoton Cloud ことはじめ
Photon Cloud ことはじめtorisoup
 
アバター生放送支援アプリ「アバれぽ」
アバター生放送支援アプリ「アバれぽ」アバター生放送支援アプリ「アバれぽ」
アバター生放送支援アプリ「アバれぽ」torisoup
 
UnityとNCMBでユーザ管理を実装してみた話
UnityとNCMBでユーザ管理を実装してみた話UnityとNCMBでユーザ管理を実装してみた話
UnityとNCMBでユーザ管理を実装してみた話torisoup
 
Task vs Observable
Task vs ObservableTask vs Observable
Task vs Observabletorisoup
 
Unityでオンラインゲーム作った話
Unityでオンラインゲーム作った話Unityでオンラインゲーム作った話
Unityでオンラインゲーム作った話torisoup
 
UniRxでPUNを使いやすくする
UniRxでPUNを使いやすくするUniRxでPUNを使いやすくする
UniRxでPUNを使いやすくするtorisoup
 
はじめてのUniRx
はじめてのUniRxはじめてのUniRx
はじめてのUniRxtorisoup
 
未来のプログラミング技術をUnityで -UniRx-
未来のプログラミング技術をUnityで -UniRx-未来のプログラミング技術をUnityで -UniRx-
未来のプログラミング技術をUnityで -UniRx-torisoup
 
みくみくまうすについて&Unity で使えるコーディングノウハウ
みくみくまうすについて&Unity で使えるコーディングノウハウみくみくまうすについて&Unity で使えるコーディングノウハウ
みくみくまうすについて&Unity で使えるコーディングノウハウtorisoup
 
Unity講習会(初級)
Unity講習会(初級)Unity講習会(初級)
Unity講習会(初級)torisoup
 

Mais de torisoup (16)

Doozy UI 使おうぜ! #unity_lt
Doozy UI 使おうぜ! #unity_ltDoozy UI 使おうぜ! #unity_lt
Doozy UI 使おうぜ! #unity_lt
 
MagicOnion~C#でゲームサーバを開発しよう~
MagicOnion~C#でゲームサーバを開発しよう~MagicOnion~C#でゲームサーバを開発しよう~
MagicOnion~C#でゲームサーバを開発しよう~
 
Unityで作ったゲームをDLカードで配布してみた話 #roppongiunity
Unityで作ったゲームをDLカードで配布してみた話 #roppongiunityUnityで作ったゲームをDLカードで配布してみた話 #roppongiunity
Unityで作ったゲームをDLカードで配布してみた話 #roppongiunity
 
ARでVRアバターを表示するシステムを構築しよう
ARでVRアバターを表示するシステムを構築しようARでVRアバターを表示するシステムを構築しよう
ARでVRアバターを表示するシステムを構築しよう
 
【Unity】 Behavior TreeでAIを作る
 【Unity】 Behavior TreeでAIを作る 【Unity】 Behavior TreeでAIを作る
【Unity】 Behavior TreeでAIを作る
 
ObserverパターンからはじめるUniRx
ObserverパターンからはじめるUniRx ObserverパターンからはじめるUniRx
ObserverパターンからはじめるUniRx
 
Photon Cloud ことはじめ
Photon Cloud ことはじめPhoton Cloud ことはじめ
Photon Cloud ことはじめ
 
アバター生放送支援アプリ「アバれぽ」
アバター生放送支援アプリ「アバれぽ」アバター生放送支援アプリ「アバれぽ」
アバター生放送支援アプリ「アバれぽ」
 
UnityとNCMBでユーザ管理を実装してみた話
UnityとNCMBでユーザ管理を実装してみた話UnityとNCMBでユーザ管理を実装してみた話
UnityとNCMBでユーザ管理を実装してみた話
 
Task vs Observable
Task vs ObservableTask vs Observable
Task vs Observable
 
Unityでオンラインゲーム作った話
Unityでオンラインゲーム作った話Unityでオンラインゲーム作った話
Unityでオンラインゲーム作った話
 
UniRxでPUNを使いやすくする
UniRxでPUNを使いやすくするUniRxでPUNを使いやすくする
UniRxでPUNを使いやすくする
 
はじめてのUniRx
はじめてのUniRxはじめてのUniRx
はじめてのUniRx
 
未来のプログラミング技術をUnityで -UniRx-
未来のプログラミング技術をUnityで -UniRx-未来のプログラミング技術をUnityで -UniRx-
未来のプログラミング技術をUnityで -UniRx-
 
みくみくまうすについて&Unity で使えるコーディングノウハウ
みくみくまうすについて&Unity で使えるコーディングノウハウみくみくまうすについて&Unity で使えるコーディングノウハウ
みくみくまうすについて&Unity で使えるコーディングノウハウ
 
Unity講習会(初級)
Unity講習会(初級)Unity講習会(初級)
Unity講習会(初級)
 

Último

NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NTT DATA Technology & Innovation
 
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfAWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfFumieNakayama
 
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?akihisamiyanaga1
 
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...博三 太田
 
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)Hiroshi Tomioka
 
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案sugiuralab
 
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)UEHARA, Tetsutaro
 
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfクラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfFumieNakayama
 
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineerYuki Kikuchi
 

Último (9)

NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
 
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfAWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
 
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
 
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
 
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
 
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
 
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
 
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfクラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
 
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
 

UniTask入門