http://blogs.unity3d.com/jp/2015/12/01/custom-coroutines/