public static int GetBuildIndex(this SceneKind kind) { if (SceneData.TryGetIndex(kind, out var buildIndex)) { return(buildIndex); } throw new InvalidOperationException(string.Format($"SceneData doesn't contain {nameof(buildIndex)} for {nameof(kind)}: {kind}")); }
private IEnumerator LoadScene(SceneKind load) { string loadstr = Enum.GetName(typeof(SceneKind), load); AsyncOperation async = SceneManager.LoadSceneAsync(loadstr); async.allowSceneActivation = false; //シーンロード完了を待って yield return(new WaitUntil(() => async.progress >= 0.9f)); //遷移 async.allowSceneActivation = true; }
public static SceneWrapper GetWrapper(SceneKind kind) => kindWrapperDict[kind];
private SceneWrapper(SceneKind kind) { this.Kind = kind; this.BuildIndex = kind.GetBuildIndex(); this.scene = SceneManager.GetSceneByBuildIndex(this.BuildIndex); }
public void LoadAsyncAllow(SceneKind load) { StartCoroutine(LoadScene(load)); }
public static bool TryGetKind(int index, out SceneKind kind) { return(m_IndexKindDict.TryGetValue(index, out kind)); }
public static bool TryGetIndex(SceneKind kind, out int index) { return(m_KindIndexDict.TryGetValue(kind, out index)); }