Example #1
0
 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}"));
 }
Example #2
0
    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);
 }
Example #5
0
 public void LoadAsyncAllow(SceneKind load)
 {
     StartCoroutine(LoadScene(load));
 }
Example #6
0
 public static bool TryGetKind(int index, out SceneKind kind)
 {
     return(m_IndexKindDict.TryGetValue(index, out kind));
 }
Example #7
0
 public static bool TryGetIndex(SceneKind kind, out int index)
 {
     return(m_KindIndexDict.TryGetValue(kind, out index));
 }