以前に紹介したとおり、UnityのAPIはスレッドセーフではないのでスレッド上で使用することは出来ない(スレッドセーフはスレッド同期コストが上がるので、普通はやらない) なので、基本的にUnityのAPIを呼び出したければ、タスクシステムのような形のシステムに処理を移譲して呼び出してやる必要がある。それを手軽に行える[Unity3D]Unityでスレッドを使いつつUnityAPIを使う Spicy Pixel Concurrency Kitのようなアセットがあるが、先日見かけたThread Ninjaが使いやすくて惚れたので紹介しておこうと思う。 このThread Ninjaはコルーチンを非同期で呼び出し、特定のブロックではメインスレッドに同期する事の出来るアセットだ。要するに、単一コルーチン内で同期・非同期を行うことが出来る。 使い方は簡単で、コルーチンをStartCoroutineAs
![テラシュールウェア [Unity]非同期処理をコルーチンで制御、Thread Ninja](https://cdn-ak-scissors.b.st-hatena.com/image/square/bba74ab7f93b2968065c03f8730de99327e1ab5a/height=288;version=1;width=512/http%3A%2F%2Fblog-imgs-69-origin.fc2.com%2Ft%2Fe%2Fr%2Fterasur%2F20140419222924689s.jpg)