コード例 #1
0
 public void TogglePause(TrackRendererEventArgs e)
 {
     if (m_isPlaying)
     {
         OnPause(e);
     }
     else
     {
         OnResume(e);
     }
 }
コード例 #2
0
 public void OnResume(TrackRendererEventArgs e)
 {
     if (!m_isPlaying && m_isStartedPlaying && !m_isEnded)
     {
         m_isPlaying = true;
         if (m_resume != null)
         {
             m_resume.Invoke();
         }
         if (m_resumeEventHandle != null)
         {
             m_resumeEventHandle(this, e);
         }
     }
 }
コード例 #3
0
 public void OnPause(TrackRendererEventArgs e)
 {
     if (m_isPlaying && m_isStartedPlaying && !m_isEnded)
     {
         m_isPlaying = false;
         if (m_pause != null)
         {
             m_pause.Invoke();
         }
         if (m_pauseEventHandle != null)
         {
             m_pauseEventHandle(this, e);
         }
     }
 }
コード例 #4
0
 protected void OnStop(TrackRendererEventArgs e)
 {
     if (m_isStartedPlaying && m_isPlaying && !m_isEnded)
     {
         m_isEnded   = true;
         m_isPlaying = false;
         if (m_stop != null)
         {
             m_stop.Invoke();
         }
         if (m_stopEventHandle != null)
         {
             m_stopEventHandle(this, e);
         }
     }
 }
コード例 #5
0
        private IEnumerator RenderingEnumerator()
        {
            yield return(new WaitForSeconds(m_delay));

            var wait = new WaitForSeconds(m_intervalTime);

            while (m_currentTime < m_duration + m_intervalTime)
            {
                if (m_isPlaying)
                {
                    Render();
                    m_currentTime += m_intervalTime;
                }
                yield return(wait);
            }
            var args = new TrackRendererEventArgs();

            OnStop(args);
        }
コード例 #6
0
 public void OnRestart(TrackRendererEventArgs e)
 {
     if (m_isStartedPlaying)
     {
         if (m_restart != null)
         {
             m_restart.Invoke();
         }
         if (m_restartEventHandle != null)
         {
             m_restartEventHandle(this, e);
         }
         Restore();
         if (m_renderingCoroutine != null)
         {
             StopCoroutine(m_renderingCoroutine);
         }
     }
 }
コード例 #7
0
 public void OnPlay(TrackRendererEventArgs e)
 {
     if (!m_isStartedPlaying)
     {
         m_isStartedPlaying = true;
         m_isPlaying        = true;
         if (m_play != null)
         {
             m_play.Invoke();
         }
         if (m_playEventHandle != null)
         {
             m_playEventHandle(this, e);
         }
         if (m_renderingCoroutine != null)
         {
             StopCoroutine(m_renderingCoroutine);
         }
         m_renderingCoroutine = StartCoroutine(RenderingEnumerator());
     }
 }
コード例 #8
0
 private void Update()
 {
     if (Input.GetKeyDown(KeyCode.S))
     {
         var args = new TrackRendererEventArgs();
         OnPlaying(args);
         print("Start!");
     }
     if (Input.GetKeyDown(KeyCode.R))
     {
         var args = new TrackRendererEventArgs();
         OnRestart(args);
         print("ReStart!");
     }
     if (Input.GetKeyDown(KeyCode.P))
     {
         var args = new TrackRendererEventArgs();
         OnPause(args);
         print("Pause");
     }
     if (Input.GetKeyDown(KeyCode.O))
     {
         var args = new TrackRendererEventArgs();
         OnResume(args);
         print("Resume");
     }
     if (Input.GetKeyDown(KeyCode.T))
     {
         var args = new TrackRendererEventArgs();
         TogglePause(args);
         print("TogglePause");
     }
     if (Input.GetKeyDown(KeyCode.U))
     {
         UpdateTrackPosition();
         print("UpdateTrackPosition");
     }
 }
コード例 #9
0
        public override void OnInspectorGUI()
        {
            serializedObject.Update();
            EditorGUILayout.BeginVertical();
            EditorGUILayout.Space();
            GUI.skin.label.fontSize  = 24;
            GUI.skin.label.fontStyle = FontStyle.Bold;
            GUILayout.Label("TrackRenderer");

            EditorGUILayout.Space();
            GUI.skin.label.fontSize  = 12;
            GUI.skin.label.fontStyle = FontStyle.Normal;
            EditorGUILayout.PropertyField(m_duration);
            EditorGUILayout.PropertyField(m_delay);

            EditorGUILayout.Space();
            if (m_trackRenderer.IsShowStatusProperties = EditorGUILayout.Toggle("Status", m_trackRenderer.IsShowStatusProperties))
            {
                EditorGUILayout.PropertyField(m_isStartedPlaying);
                EditorGUILayout.PropertyField(m_isPlaying);
                EditorGUILayout.PropertyField(m_isEnded);
            }

            EditorGUILayout.Space();
            if (m_trackRenderer.IsShowEventsProperties = EditorGUILayout.Toggle("Events", m_trackRenderer.IsShowEventsProperties))
            {
                EditorGUILayout.PropertyField(m_play);
                EditorGUILayout.PropertyField(m_stop);
                EditorGUILayout.PropertyField(m_pause);
                EditorGUILayout.PropertyField(m_resume);
                EditorGUILayout.PropertyField(m_restart);
            }

            EditorGUILayout.Space();

            if (m_trackRenderer.IsShowLineRendererProperties = EditorGUILayout.Toggle("LineRenderer", m_trackRenderer.IsShowLineRendererProperties))
            {
                EditorGUILayout.PropertyField(m_startWidth);
                EditorGUILayout.PropertyField(m_endWidth);
                EditorGUILayout.PropertyField(m_startColor);
                EditorGUILayout.PropertyField(m_endColor);
            }
            EditorGUILayout.Space();

            if (m_trackRenderer.IsShowGizmosProperties = EditorGUILayout.Toggle("Gizmos", m_trackRenderer.IsShowGizmosProperties))
            {
                EditorGUILayout.PropertyField(m_isDrawGizmos);
                EditorGUILayout.PropertyField(m_gizmosColor);
                EditorGUILayout.PropertyField(m_gizmosSize);
            }

            EditorGUILayout.Space();

            EditorGUILayout.PropertyField(m_trackLength);
            EditorGUILayout.PropertyField(m_trackPoints, true);

            EditorGUILayout.BeginHorizontal();
            if (GUILayout.Button("Play"))
            {
                var args = new TrackRendererEventArgs();
                m_trackRenderer.OnPlay(args);
            }
            if (GUILayout.Button("Restart"))
            {
                var args = new TrackRendererEventArgs();
                m_trackRenderer.OnRestart(args);
            }
            EditorGUILayout.EndHorizontal();

            EditorGUILayout.BeginHorizontal();

            if (GUILayout.Button("Pause"))
            {
                var args = new TrackRendererEventArgs();
                m_trackRenderer.OnPause(args);
            }
            if (GUILayout.Button("Resume"))
            {
                var args = new TrackRendererEventArgs();
                m_trackRenderer.OnResume(args);
            }
            EditorGUILayout.EndHorizontal();

            EditorGUILayout.BeginHorizontal();
            if (GUILayout.Button("TogglePause"))
            {
                var args = new TrackRendererEventArgs();
                m_trackRenderer.TogglePause(args);
            }
            EditorGUILayout.EndHorizontal();


            EditorGUILayout.EndVertical();
            m_trackRenderer.SetTrackLength();
            serializedObject.ApplyModifiedProperties();
        }