Example #1
0
        public void Attach(VisualEffect effect = null)
        {
            VisualEffect target = effect != null ? effect : m_SelectionCandidate;

            if (target != null)
            {
                m_SelectionCandidate = target; // allow reattaching if effet != null;
                m_AttachedComponent  = target;
                UpdateAttachButton();
                m_LastKnownPauseState = !m_AttachedComponent.pause;
                UpdatePlayButton();

                if (m_UpdateItem == null)
                {
                    m_UpdateItem = schedule.Execute(Update).Every(100);
                }
                else
                {
                    m_UpdateItem.Resume();
                }
                if (m_ComponentContainer.parent == null)
                {
                    m_ComponentContainerParent.Add(m_ComponentContainer);
                }
                UpdateEventList();
                m_SelectButton.visible = true;

                m_DebugUI = new VFXUIDebug(m_View);
                m_DebugUI.SetDebugMode(VFXUIDebug.Modes.None, this, true);
                m_DebugUI.SetVisualEffect(m_AttachedComponent);
            }
        }
Example #2
0
        public bool Attach(VisualEffect effect = null)
        {
            VisualEffect target = effect != null ? effect : Selection.activeGameObject?.GetComponent <VisualEffect>();

            if (target != null && m_View.controller?.graph != null && m_AttachedComponent != target)
            {
                if (m_AttachedComponent != null)
                {
                    m_AttachedComponent.playRate = 1;
                }

                m_AttachedComponent          = target;
                m_Subtitle.text              = m_AttachedComponent.name;
                m_LastKnownPauseState        = !m_AttachedComponent.pause;
                m_AttachedComponent.playRate = m_LastKnownPlayRate >= 0 ? m_LastKnownPlayRate : 1;

                UpdatePlayButton();

                if (m_UpdateItem == null)
                {
                    m_UpdateItem = schedule.Execute(Update).Every(100);
                }
                else
                {
                    m_UpdateItem.Resume();
                }
                UpdateEventList();

                var debugMode = VFXUIDebug.Modes.None;
                if (m_DebugUI != null)
                {
                    debugMode = m_DebugUI.GetDebugMode();
                    m_DebugUI.Clear();
                }

                m_DebugUI = new VFXUIDebug(m_View);
                m_DebugUI.SetVisualEffect(m_AttachedComponent);
                m_DebugUI.SetDebugMode(debugMode, this, true);

                m_RootElement.SetEnabled(true);
                m_SubtitleIcon.style.display = DisplayStyle.None;
                UpdateBoundsRecorder();
                UpdateRecordingButton();
                RefreshInitializeErrors();

                return(true);
            }

            return(false);
        }
Example #3
0
            public CurveContent(VFXUIDebug debugUI, int maxPoints, long timeBetweenDraw = 33)
            {
                m_DebugUI          = debugUI;
                m_CurveMat         = new Material(Shader.Find("Hidden/VFX/SystemInfo"));
                m_BarMat           = new Material(Shader.Find("Hidden/VFX/TimeBar"));
                m_ClippingMatrixId = Shader.PropertyToID("_ClipMatrix");
                m_MaxPoints        = maxPoints;
                m_VFXCurves        = new List <SwitchableCurve>();

                m_VerticalBar         = new VerticalBar(0);
                m_TimeBarsOffsets     = new List <float>();
                m_LastTimeBarDrawTime = -2 * s_TimeBarsInterval;

                SetSamplingRate((long)timeBetweenDraw);
            }