Beispiel #1
0
    // 切替
    public void Change()
    {
        // 切替情報作成
        SceneChangeData changeData = new SceneChangeData();

        changeData.NextID   = _workID;
        changeData.FadeID   = FadeEnum.ID.IMAGE;
        changeData.FadeTime = _fadeTime;

        // 切替申請発行
        ProjectSceneManager.Instance.ChangeScene(changeData);
    }
    // シーン切替
    public void ChangeScene(SceneChangeData changeData)
    {
        // フェード中、または情報がなければ処理しない
        if (IsFade || changeData == null)
        {
            return;
        }

        // シーン情報初期化
        _sceneList.Clear();

        // フェード情報取得
        _fadeData = new FadeData();
        foreach (BasicFade fadeInfo in _fadeList)
        {
            // フェードアウト情報の登録
            if (changeData.FadeOutID == fadeInfo.FadeID)
            {
                _fadeData.FadeOut = fadeInfo;
            }

            // フェードイン情報の登録
            if (changeData.FadeInID == fadeInfo.FadeID)
            {
                _fadeData.FadeIn = fadeInfo;
            }

            // フェード情報の取得が終わったら
            if (_fadeData.FadeOut != null && _fadeData.FadeIn != null)
            {
                // フェード時間登録
                _fadeData.FadeOutTime = changeData.FadeOutTime;
                _fadeData.FadeInTime  = changeData.FadeInTime;

                // フェードアウト実行準備
                _fadeData.FadeOut.FadeMode = FadeEnum.Mode.OUT;
                _fadeData.FadeOut.Ready();

                // 次シーンを登録して終了
                _fadeData.NextID = changeData.NextID;
                return;
            }
        }

        // フェード情報の取得に失敗
        _fadeData = null;
    }