| 541 | } |
| 542 | |
| 543 | void AudioSource::OnDisable() |
| 544 | { |
| 545 | // Cache playback state |
| 546 | _savedState = GetState(); |
| 547 | _savedTime = GetTime(); |
| 548 | |
| 549 | // End playback |
| 550 | Stop(); |
| 551 | |
| 552 | // Remove source |
| 553 | #if USE_EDITOR |
| 554 | GetSceneRendering()->RemoveViewportIcon(this); |
| 555 | #endif |
| 556 | GetScene()->Ticking.Update.RemoveTick(this); |
| 557 | if (SourceID) |
| 558 | { |
| 559 | AudioBackend::Source::Remove(SourceID); |
| 560 | SourceID = 0; |
| 561 | } |
| 562 | Audio::Sources.Remove(this); |
| 563 | |
| 564 | // Base |
| 565 | Actor::OnDisable(); |
| 566 | } |
| 567 | |
| 568 | void AudioSource::OnTransformChanged() |
| 569 | { |