protected void StartCoroutine(string coroutineName, IEnumerator coroutine, System.Action <object> updateCallback, System.Action <object> finishCallback, object finishCallbackParam) { MyCoroutine myCoroutine = new MyCoroutine { name = coroutineName, updateCallback = updateCallback, finishCallback = finishCallback, finishCallbackParam = finishCallbackParam }; myCoroutine.SetStartCoroutineBody(coroutine); coroutinesTable[coroutineName] = myCoroutine; }