コード例 #1
0
ファイル: Viewer.cs プロジェクト: elix22/Effekseer
        public void StopViewer()
        {
            if (isViewerShown)
            {
                EffectRenderer.ResetEffect();

                IsPlaying = false;
                IsPaused  = false;
                current   = Core.StartFrame;
            }
        }
コード例 #2
0
ファイル: Viewer.cs プロジェクト: elix22/Effekseer
        public bool LoadEffectFunc()
        {
            StopViewer();

            EffectRenderer.SetEffect(null);
            EffectRenderer.ResetEffect();

            Export();

            IsChanged = false;

            return(true);
        }
コード例 #3
0
ファイル: Viewer.cs プロジェクト: elix22/Effekseer
        /// <summary>
        /// reload an effect including resources
        /// </summary>
        public unsafe void Reload(bool isResourceReloaded)
        {
            if (isResourceReloaded)
            {
                effectFactory.ReloadAllResources();
            }

            EffectRenderer.SetEffect(null);
            EffectRenderer.ResetEffect();

            Export();

            EffectRenderer.RandomSeed = random_seed;
            EffectRenderer.PlayEffect();
            StepEffectFrame((int)Current);
        }
コード例 #4
0
ファイル: Viewer.cs プロジェクト: elix22/Effekseer
        unsafe void PlayNew()
        {
            EffectRenderer.ResetEffect();

            if (IsChanged)
            {
                EffectRenderer.SetEffect(null);
                EffectRenderer.ResetEffect();

                Export();

                IsChanged = false;
            }

            RenewRandomSeed();
            EffectRenderer.PlayEffect();
            IsPlaying = true;

            if (Core.StartFrame > 0)
            {
                StepEffectFrame(Core.StartFrame);
            }
            current = Core.StartFrame;
        }
コード例 #5
0
ファイル: Viewer.cs プロジェクト: elix22/Effekseer
        unsafe void MoveFrame(float new_frame)
        {
            // Same frame
            if (current == new_frame)
            {
                return;
            }

            if (new_frame < Core.StartFrame)
            {
                new_frame = Core.StartFrame;
            }
            if (new_frame > Core.EndFrame)
            {
                new_frame = Core.EndFrame;
            }

            if (isViewerShown)
            {
                if (!IsPlaying)
                {
                    PlayNew();
                    PauseAndResumeViewer();
                }

                if (IsPaused)
                {
                    if ((int)current == (int)new_frame)
                    {
                    }
                    else if ((int)current > (int)new_frame)
                    {
                        EffectRenderer.ResetEffect();
                        EffectRenderer.RandomSeed = random_seed;
                        EffectRenderer.PlayEffect();
                        StepEffectFrame((int)new_frame);
                    }
                    else
                    {
                        StepEffectFrame((int)new_frame - (int)current);
                    }
                }
                else
                {
                    if ((int)current == (int)new_frame)
                    {
                    }
                    else if ((int)current > (int)new_frame)
                    {
                        EffectRenderer.ResetEffect();
                        RenewRandomSeed();
                        EffectRenderer.PlayEffect();
                        StepEffectFrame((int)new_frame);
                    }
                    else
                    {
                        StepEffectFrame((int)new_frame - (int)current);
                    }
                }
                current = new_frame;
            }
        }