質問: wait.get_chach_iti(); ///////// ※※2 ///////// を //長過ぎウェイトチェック if (wait.chk_wait_over(wait_iti)) { yield return wait.f(1); } ///////// ※※3 ///////// を //キャッシュ解放 wait.del_check_time(wait_iti); に置換して使用する ``` ### 現在作成中のゲーム 光栄様の三国志7のようなゲームでキャラが時間経過でポコポコ増えていくゲーム (そのため、どんどんとセーブデータが大きくなっていく) なにとぞ、ご教授の方をよろしくお願いします。
回答: 回答させていただきます。 ロードシーンを挟むことで他に何もせず改善できる可能性があります。 シーン遷移は下記のような流れを想定しています。 アプリ起動 -> ロードシーン -> ゲームシーン 下記のコードは`AsyncOperation .allowSceneActivation`を利用し、シーンがロード完了までアクティブ化を遅延させるロードシーンの最小構成です。ローディングアニメーションやプログレスバーなどを設置しても、ほぼカクつきなどありません。 ※LoadSceneAsyncを有効にするにはBuild Settings ウインドウのScene In Buildにシーンを設定してください。設定していない場合、エラーがでます。 ``` using System.Collections; using UnityEngine; using UnityEngine.SceneManagement; public class LoadingScene : MonoBehaviour { IEnumerator Start() { var asyncOperation = SceneManager.LoadSceneAsync("SceneName"); asyncOperation.allowSceneActivation = false; //allowSceneActivationをfalseにした場合、0.9fが最終です。trueにするまで1fまで進行しません。 while (asyncOperation.progress < 0.9f) { //現在のロード進捗が取得できます。 //asyncOperation.progress; yield return null; } asyncOperation.allowSceneActivation = true; } } ``` ※[追記] `asyncOperation.progress`はEditor上では一瞬で完了してしまうので実機でご確認ください。 [参考] [追記] 上記で解消されたら ============== ロードシーンからスタートすることで、重い処理をシーンがアクティブになる前に詰め込めるので初回に用意する必要があるものは`Coroutine`を使わず実装すると良いと思います。`Coroutine`はフレームをまたいで処理されるので重い処理が完了しないままゲームシーンが表示されてしまいます。