/// <summary> /// ロードに成功したら関数を実行する /// </summary> /// <param name="path"></param> /// <param name="successFunction"></param> public void LoadAndFunction(string path, CoroutineExpansion.CoroutineFinishedFunc successFunction) { if (!File.Exists(path)) { return; } ResetCoroutine(); routine = LoadToAudioClip(path); this.StartCoroutine(routine, successFunction); }
/// <summary> /// 巻き終わってから実行する関数 /// </summary> private void EndRollFunc() { // 下記コルーチンが終了時に呼び出される関数 CoroutineExpansion.CoroutineFinishedFunc endFunc = () => { // メッセージテキストのフロートアウト this.StartDelayCoroutine(FloatOutTexts(), waitBetweenFrame); }; // 提供と開発環境テキストのフロートイン this.StartCoroutine(FloatInTexts(), endFunc); }
/// <summary> /// 縦方向にテキストのバックを閉じて開く /// </summary> public void StartCloseAndOpenVertical(int index, CoroutineExpansion.CoroutineFinishedFunc func = null) { //下限 if (index < 0) { Debug.LogError("<color=red>" + "index is under limit over" + "</color>"); return; } //上限 if (index > entryTexts.Length - 1)//インスタンス生成数-1 { Debug.LogError("<color=red>" + "index is top limit over" + "</color>"); return; } //コルーチンの実行 IEnumerator coroutine = CloseAndOpenVertical(index); this.StartCoroutine(coroutine, func); }
/// <summary> /// 指定フレーム遅延後に関数の実行を行う /// </summary> /// <param name="self"></param> /// <param name="func"></param> /// <param name="frame"></param> public static void DelayMethod(this MonoBehaviour self, Function func, float frame) { CoroutineExpansion.CoroutineFinishedFunc cast = () => { func(); }; CoroutineExpansion.StartCoroutine(self, WaitCoroutine(self, frame), cast); }