public void InitWithEnvelope( EnvelopeModule module ) { if( module == _envelopeModule ) return; if( _envelopeModule != null ) { DiscardEnvelope(); } if( _handles == null ) { SetupHandles(); } _envelopeModule = module; _samplesPerPixel = module.SamplesPerPixel; _scrollPos = new Vector2( module.ScrollXPosition, 0f ); EnvelopeHandle.MaxSamples = module.MaxSamples; UpdateZoom(); _handles[ 0 ].PosInSamples = module.Offset; _handles[ 1 ].PosInSamples = module.FadeIn + module.Offset; _handles[ 3 ].PosInSamples = module.Length + module.Offset; _handles[ 2 ].PosInSamples = _handles[ 3 ].PosInSamples - module.FadeOut; UpdatePosHandle(); module.onLengthWasMapped += OnLengthWasMapped; }
void PopWindow() { _envelopeModule = target as EnvelopeModule; EnvelopeWindow window = EditorWindow.GetWindow< EnvelopeWindow >( true, "EnvelopeWindow" ); window.InitWithEnvelope( _envelopeModule ); }
void DiscardEnvelope() { _envelopeModule.ScrollXPosition = _scrollPos.x; _envelopeModule.MaxSamples = EnvelopeHandle.MaxSamples; _envelopeModule.SamplesPerPixel = _samplesPerPixel; _envelopeModule.onLengthWasMapped -= OnLengthWasMapped; _envelopeModule = null; }