示例#1
0
    public override void ProcessFrame(Playable playable, FrameData info, object playerData)
    {
        double time = playable.GetTime();

        MidiEventReceiver trackBinding = playerData as MidiEventReceiver;

        if (!trackBinding)
        {
            return;
        }

        m_midiEventReceiver = trackBinding;

        //  Debug.Log( playable.GetGraph().GetRootPlayable(0).GetPlayState() );

        // Debug.Log(m_previousState);

        if (Director.state == PlayState.Paused)
        {
            m_lastTime = playable.GetTime();
            // DispatchEvents(m_seq.Start((float)playable.GetTime()));
        }
        // On play
        if (Director.state == PlayState.Playing && m_previousState == PlayState.Paused)
        {
            if (m_seq != null)
            {
                Debug.Log("Start it " + m_lastTime);
                LoadSong();
                LoadSequencer();
                DispatchEvents(m_seq.Start((float)m_lastTime));
            }
        }
        m_previousState = Director.state;


        if (!m_FirstFrameHappened)
        {
            m_FirstFrameHappened = true;
        }


        if (m_seq != null && m_seq.Playing)
        {
            // Update the sequencer and dispatch incoming events.

            DispatchEvents(m_seq.Advance(info.deltaTime));
        }
    }
示例#2
0
    // NOTE: This function is called at runtime and edit time.  Keep that in mind when setting the values of properties.
    public override void ProcessFrame(Playable playable, FrameData info, object playerData)
    {
        MidiEventReceiver trackBinding = playerData as MidiEventReceiver;

        if (!trackBinding)
        {
            return;
        }

        int inputCount = playable.GetInputCount();

        for (int i = 0; i < inputCount; i++)
        {
            float inputWeight = playable.GetInputWeight(i);
            ScriptPlayable <MidiEventBehaviour> inputPlayable = (ScriptPlayable <MidiEventBehaviour>)playable.GetInput(i);
            MidiEventBehaviour input = inputPlayable.GetBehaviour();

            // Use the above variables to process each frame of this playable.
        }
    }