Exemplo n.º 1
0
    // Update is called once per frame
    void Update()
    {
        if (!Input.GetButton(InputMap.Type.AButton.GetInputName()) ||
            triggered)
        {
            return;
        }

        var selected = menu.selected;
        var fadeData = new FadeData(1f, 1f, Color.black);

        this.triggered = true;

        if (selected == 0)
        {
            //最後のチェックポイントから
            StageManager.Resume(fadeData);
        }
        else if (selected == 1)
        {
            //タイトルに戻る
            SceneChanger.Instance().Change(SceneName.Title, fadeData);
        }
        else if (selected == 2)
        {
            //ゲーム終了
            Application.Quit();
        }
    }
Exemplo n.º 2
0
    private void Update()
    {
        //フェードの更新をする
        for (int i = mFadeList.Count - 1; i >= 0; i--)
        {
            FadeData f = mFadeList[i];

            //何らかの理由で破棄されていたら
            if (f.mSoundInstance == null)
            {
                mFadeList.RemoveAt(i);
                continue;
            }

            //経過時間の更新
            f.mNowTime += Time.deltaTime;
            f.mNowTime  = Mathf.Clamp(f.mNowTime, 0.0f, f.mFadeTime);

            //音量の更新
            Volume(f.mSoundInstance, Mathf.Lerp(f.mStartVolume, f.mEndVolume, f.mNowTime / f.mFadeTime));

            //終了かの判定
            if (f.mNowTime == f.mFadeTime)
            {
                mFadeList.RemoveAt(i);
                //終了時に破棄する設定なら
                if (f.mEndDestroy == true)
                {
                    Destroy(f.mSoundInstance);
                }
                continue;
            }
        }
    }
Exemplo n.º 3
0
    public static void Resume(FadeData fadeData)
    {
        StageManager.resum = true;
        int    currentStageNumber = StageDataPrefs.GetStageNumber();
        string stage = StageNumber.GetStageName(currentStageNumber);

        SceneChanger.Instance().Change(SceneNameManager.GetKeyByValue(stage), fadeData);
    }
Exemplo n.º 4
0
 // copy constructor
 public FadeData(FadeData copySource)
 {
     transitionMask  = copySource.transitionMask;
     invert          = copySource.invert;
     flipHorizontal  = copySource.flipHorizontal;
     flipVertical    = copySource.flipVertical;
     delay           = copySource.delay;
     softEdgePercent = copySource.softEdgePercent;
 }
Exemplo n.º 5
0
    void Fade(FadeData fadeData)
    {
        this.fadeData = fadeData;

        GetComponent <AudioSource>().clip = Resources.Load(fadeData.SoundName) as AudioClip;
        GetComponent <AudioSource>().Play();

        StartCoroutine(DoFade());
    }
Exemplo n.º 6
0
 public void FadeSprites(Sprite newSprite, bool tileX, bool tileY, int tileXAmount, int tileYAmount, float time)
 {
     if (isFading)
     {
         fadeQueue = new FadeData(newSprite, tileX, tileY, tileXAmount, tileYAmount, time);
     }
     else
     {
         StartCoroutine(FadeSpritesCoroutine(newSprite, tileX, tileY, tileXAmount, tileYAmount, time));
     }
 }
Exemplo n.º 7
0
    IEnumerator Transition()
    {
        yield return(new WaitForSeconds(1));

        FadeData fadeData = new FadeData();

        fadeData.color     = Color.black;
        fadeData.duration  = 1;
        fadeData.SoundName = "1";
        Events.Fade(fadeData);
    }
Exemplo n.º 8
0
    Fade Fadeing(float _time, float _start, float _end, System.Action _callback)
    {
        FadeData data = new FadeData {
            time     = _time,
            callback = _callback,
            start    = _start,
            end      = _end
        };

        que.Add(data);
        return(this);
    }
Exemplo n.º 9
0
 public IEnumerator FadeRoutine(FadeData fade, bool invert = false, float timeMult = 1.0f) {
     currentFade = fade;
     reverse = invert;
     elapsedSeconds = 0.0f;
     transitionDuration = fade.delay * timeMult;
     active = true;
     
     while (elapsedSeconds < transitionDuration) {
         yield return null;
     }
     AssignCommonShaderVariables();
 }
Exemplo n.º 10
0
    IEnumerator DoAction()
    {
        yield return(new WaitForSeconds(1));

        Events.OnCharacterAutomove();
        yield return(new WaitForSeconds(6));

        FadeData fadeData = new FadeData();

        fadeData.color     = Color.black;
        fadeData.duration  = 1;
        fadeData.SoundName = "1";
        Events.Fade(fadeData);
    }
Exemplo n.º 11
0
        public void Fade(IImage image, float duration, float sourceAlpha, float destAlpha)
        {
            if (image == null)
            {
                throw new System.ArgumentNullException("Invalid image");
            }
            FadeData fd = new FadeData();

            fd.Image       = image;
            fd.SourceAlpha = sourceAlpha;
            fd.DestAlpha   = destAlpha;
            fd.Timer.Begin(Mathf.Max(0, duration));
            ApplyAlpha(image, sourceAlpha);
            _Fades.Add(fd);
        }
Exemplo n.º 12
0
    public void Fade(GameObject aSoundInstance, float aStartVolume, float aEndVolume, float aFadeTime, bool aEndDestroy)
    {
        FadeData f = new FadeData();

        f.mSoundInstance = aSoundInstance;
        f.mStartVolume   = aStartVolume;
        f.mEndVolume     = aEndVolume;
        f.mFadeTime      = aFadeTime;
        f.mEndDestroy    = aEndDestroy;
        f.mNowTime       = 0.0f;

        mFadeList.Add(f);

        Volume(aSoundInstance, aStartVolume);
    }
Exemplo n.º 13
0
        public PYAudioSource Fade(float from, float to, float duration = 0.1f)
        {
            if (from > Group.Volume)
            {
                from = Group.Volume;
            }
            if (to > Group.Volume)
            {
                to = Group.Volume;
            }

            _fadeData          = new FadeData(from, to, duration);
            _fadeData.HasFader = true;
            return(this);
        }
Exemplo n.º 14
0
    IEnumerator Transition()
    {
        yield return(new WaitForSeconds(1));

        Events.OnCharacterOpenDoor();
        FadeData fadeData = new FadeData();

        fadeData.color     = Color.black;
        fadeData.duration  = 1;
        fadeData.SoundName = "1";
        Events.Fade(fadeData);
        yield return(new WaitForSeconds(1));

        OnCharBack();
        ready = false;
    }
Exemplo n.º 15
0
    // シーン切替
    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;
    }
Exemplo n.º 16
0
        private System.Collections.IEnumerator FadeRoutine(float from, float to, float duration, System.Action callback)
        {
            float timer = 0;

            while ((timer < 1) && (duration > 0))
            {
                _source.volume = Mathf.Lerp(from, to, timer);
                timer         += Time.deltaTime / duration;
                yield return(null);
            }

            _source.volume = to;
            _fadeData      = null;
            if (callback != null)
            {
                callback();
            }
        }
Exemplo n.º 17
0
    /// <summary>
    /// シーンを変更するコルーチン
    /// </summary>
    /// <param name="scene">次のシーン</param>
    /// <param name="fade">フェードの情報</param>
    /// <returns></returns>
    private IEnumerator ChangeCoroutine(SceneName scene, FadeData fade)
    {
        if (isChanging && currentCoroutine != null)
        {
            StopCoroutine(currentCoroutine);
        }

        isChanging = true;
        //フェードアウトし終わるまで待機
        yield return(StartCoroutine(Fade.Instance().FadeOutCoroutine(fade.fadeOutTime, fade.fadeColor)));

        //シーンを変更する
        yield return(StartCoroutine(LoadData(scene)));

        //フェードイン処理
        yield return(StartCoroutine(Fade.Instance().FadeInCoroutine(fade.fadeInTime, fade.fadeColor)));

        isChanging = false;
    }
Exemplo n.º 18
0
        private void Init()
        {
            this.isReleased = false;
            this.fadeTime   = new float?();
            if (Object.op_Inequality((Object)this.stand, (Object)null))
            {
                this.stand.SetPositionAndRotation(Vector3.get_zero(), Quaternion.get_identity());
            }
            this.bkFadeDat = new FadeData((SimpleFade)Singleton <Scene> .Instance.sceneFade);
            TextScenario scenario = this.scenario;
            Camera       main     = Camera.get_main();

            this._advCamera = main;
            Camera camera = main;

            scenario.AdvCamera = camera;
            if (Singleton <Manager.Map> .IsInstance() && Object.op_Inequality((Object)Singleton <Manager.Map> .Instance.Player, (Object)null))
            {
                this.scenario.virtualCamera = Singleton <Manager.Map> .Instance.Player.CameraControl.ADVCamera as CinemachineVirtualCamera;
            }
            ParameterList.Init();
            if ((this.scenario.isWait || this.fadeTime.HasValue) && Object.op_Inequality((Object)this.advFade, (Object)null))
            {
                ADVFade advFade  = this.advFade;
                float?  fadeTime = this.fadeTime;
                double  num      = !fadeTime.HasValue ? 0.0 : (double)fadeTime.Value;
                advFade.CrossFadeAlpha(true, 1f, (float)num, true);
                this.scenario.isWait = true;
                IObservable <M0> observable = Observable.Take <Unit>(Observable.Where <Unit>((IObservable <M0>)ObservableTriggerExtensions.UpdateAsObservable((Component)this), (Func <M0, bool>)(_ => this.advFade.IsFadeInEnd)), 1);
                Action <Unit>    action     = (Action <Unit>)(_ => this.scenario.isWait = false);
                // ISSUE: reference to a compiler-generated field
                if (ADVScene.\u003C\u003Ef__mg\u0024cache0 == null)
                {
                    // ISSUE: reference to a compiler-generated field
                    ADVScene.\u003C\u003Ef__mg\u0024cache0 = new Action(ParameterList.WaitEndProc);
                }
                // ISSUE: reference to a compiler-generated field
                Action fMgCache0 = ADVScene.\u003C\u003Ef__mg\u0024cache0;
                this.updateDisposable = ObservableExtensions.Subscribe <Unit>(observable, (Action <M0>)action, fMgCache0);
            }
            this.scenario.ConfigProc();
        }
Exemplo n.º 19
0
    private void Fade(DynValue type)
    {
        var      typeString = type.String;
        FadeData fade;
        bool     invert = false;

        if (typeString == "normal")
        {
            fade   = lastFade;
            invert = true;
        }
        else
        {
            fade = IndexDatabase.Instance().Fades.GetData(typeString);
        }
        lastFade = fade;
        var globals = Global.Instance();

        RunRoutineFromLua(globals.Maps.Camera.GetComponent <FadeComponent>().FadeRoutine(fade, invert));
    }
Exemplo n.º 20
0
    private void Update()
    {
        t += Time.deltaTime;
        FadeData data = fades[index];

        if (t > data.duration)
        {
            if (index + 1 == fades.Length && !loop)
            {
                image.color = data.targetColor;
                return;
            }

            ++index;
            data = fades[index];
            t    = -data.delay;
        }

        image.color = Color.Lerp(data.startColor, data.targetColor, Mathf.Max(t, 0.0f) / data.duration);
    }
Exemplo n.º 21
0
    public override IEnumerator FadeRoutine(FadeData fade, bool invert = false, float timeMult = 1)
    {
        float elapsed            = 0.0f;
        float transitionDuration = fade.delay * timeMult;

        materialsToFade = new List <Material>();
        if (Global.Instance().Maps.ActiveMap != null)
        {
            materialsToFade.Add(Global.Instance().Maps.Avatar.Chara.Doll.Renderer.sharedMaterial);
            foreach (var layer in Global.Instance().Maps.ActiveMap.layers)
            {
                materialsToFade.Add(layer.GetComponent <TilemapRenderer>()?.sharedMaterial);
            }
        }
        foreach (var renderer in renderersToFade)
        {
            materialsToFade.Add(renderer.sharedMaterial);
        }
        foreach (var image in imagesToFade)
        {
            materialsToFade.Add(image.material);
        }
        foreach (var text in textsToFade)
        {
            materialsToFade.Add(text.material);
        }

        while (elapsed < transitionDuration)
        {
            elapsed += Time.fixedDeltaTime;
            foreach (var material in materialsToFade)
            {
                AssignShaderValues(material, fade, invert, elapsed / transitionDuration);
            }
            yield return(null);
        }
        foreach (var material in materialsToFade)
        {
            AssignShaderValues(material, fade, invert, 1.0f);
        }
    }
Exemplo n.º 22
0
    // フェード
    private void Fade()
    {
        // フェードアウト情報があれば
        if (_fadeData.FadeOut != null)
        {
            // フェードアウトの実行
            _fadeData.FadeOut.Run();

            // 終了確認
            if (_fadeData.FadeOut.IsEnd)
            {
                // シーン切替
                LoadScene(_fadeData.NextID, LoadSceneMode.Single);

                // フェードアウト情報削除
                _fadeData.FadeOut = null;

                // フェードイン実行準備
                _fadeData.FadeIn.FadeMode = FadeEnum.Mode.IN;
                _fadeData.FadeIn.Ready();
            }
        }

        // フェードイン情報があれば
        if (_fadeData.FadeIn != null)
        {
            // フェードインの実行
            _fadeData.FadeIn.Run();

            // フェードインが終わったら
            if (_fadeData.FadeIn.IsEnd)
            {
                // イベントシステム作成
                CreateEventSystem();

                // フェード終了
                _fadeData = null;
            }
        }
    }
Exemplo n.º 23
0
    public override void OnLoad(object userData = null)
    {
        base.OnLoad(userData);
        tempData = (FadeData)userData;
        tempData.FadeEnterCallback?.Invoke();
        switch (tempData.Mode)
        {
        case FadeMode.FadeIn:
            CanvasGroup.alpha = 0;
            CanvasGroup.DOFade(1, 0.5f).onComplete += () =>
            {
                tempData.FadeInDoneCallback?.Invoke();
                ReleaseSelf(false, tempData);
            };
            break;

        case FadeMode.FadeOut:
            _FadeOut(null);
            break;

        case FadeMode.FadeInOut:
            CanvasGroup.alpha = 0;
            CanvasGroup.DOFade(1, 0.5f).onComplete += () =>
            {
                Z.Subject.GetSubject("Z_FadeOutAction").First().Subscribe(_FadeOut);
                tempData.FadeInDoneCallback?.Invoke();
            };
            break;

        case FadeMode.WaitingThenFadeOut:
            CanvasGroup.alpha = 1;
            Z.Subject.GetSubject("Z_FadeOutAction").First().Subscribe(_FadeOut);
            tempData.FadeInDoneCallback?.Invoke();
            break;

        default:
            break;
        }
    }
Exemplo n.º 24
0
        /// <summary>
        /// Update
        /// </summary>
        protected override void Update()
        {
            if (Global.IsGamePaused)
            {
                return;
            }

            if (_Fades.Count > 0)
            {
                int index = 0;
                while (index < _Fades.Count)
                {
                    FadeData fd      = _Fades[index];
                    float    percent = fd.Timer.Percent;
                    if (percent >= 1.0f)
                    {
                        ApplyAlpha(fd.Image, fd.DestAlpha);
                        _Fades.RemoveAt(index);
                        continue;
                    }
                    else
                    {
                        float alpha;
                        if (fd.SourceAlpha < fd.DestAlpha)
                        {
                            alpha = Mathf.Lerp(fd.SourceAlpha, fd.DestAlpha, fd.Timer.Percent);
                        }
                        else
                        {
                            alpha = Mathf.Lerp(fd.DestAlpha, fd.SourceAlpha, 1.0f - fd.Timer.Percent);
                        }
                        ApplyAlpha(fd.Image, alpha);
                    }
                    index++;
                }
            }
            base.Update();
        }
Exemplo n.º 25
0
    void LateUpdate()
    {
                #if UNITY_EDITOR
        if (!UnityEditor.EditorApplication.isPlaying)
        {
            if (UnityEditor.SceneView.lastActiveSceneView != null && editorShowMesh && (tileX || tileY))
            {
                DrawMeshes(UnityEditor.SceneView.lastActiveSceneView.camera);
            }
            return;
        }
                #endif
        if (cam == null)
        {
            cam = Camera.main;
            if (cam == null)
            {
                return;
            }
        }
        if (!isFading && fadeQueue != null)
        {
            StartCoroutine(FadeSpritesCoroutine(fadeQueue.sprite, fadeQueue.tileX, fadeQueue.tileY, fadeQueue.tileXAmount, fadeQueue.tileYAmount, fadeQueue.time));
            fadeQueue = null;
        }

        transform.position = startPos + (Vector3)((Vector2)cam.transform.position - (Vector2)startPos + _offset) * ratio;
        if (pixelSnap)
        {
            PixelPerfectCamera.SnapToPix(transform);
        }
        if (tileX || tileY)
        {
            DrawMeshes(cam);
        }
    }
Exemplo n.º 26
0
 /// <summary>
 /// シーンの変更
 /// </summary>
 /// <param name="scene">次のシーン</param>
 /// <param name="fade">フェードの情報</param>
 public void Change(SceneName scene, FadeData fade)
 {
     currentCoroutine = StartCoroutine(ChangeCoroutine(scene, fade));
 }
Exemplo n.º 27
0
 public abstract IEnumerator FadeRoutine(FadeData fade, bool invert = false, float timeMult = 1.0f);
Exemplo n.º 28
0
 private void AssignShaderValues(Material material, FadeData fade, bool invert, float t)
 {
     material.SetFloat("_FadeOffset", invert ? (1.0f - t) : t);
     material.SetInt("_Invert", fade.invert ? 1 : 0);
     material.SetFloat("_FadeColorMod", fade.brightnessMod);
 }
Exemplo n.º 29
0
 // copy constructor
 public FadeData(FadeData source)
 {
     brightnessMod = source.brightnessMod;
     delay         = source.delay;
     invert        = source.invert;
 }
Exemplo n.º 30
0
 private void Awake()
 {
     _fadeData  = (FadeData)Resources.Load("Global/Data/BlackFadeData");
     _fadeStart = (GameEvent)Resources.Load("Global/Event/StartFade");
 }