Skip to content

Commit a8208fc

Browse files
authored
Merge pull request #6463 from mozilla/invisible-audio-fix
Force a matrix world update when audio is created
2 parents 0ee6757 + af9c696 commit a8208fc

File tree

1 file changed

+7
-1
lines changed

1 file changed

+7
-1
lines changed

src/bit-systems/audio-emitter-system.ts

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { addComponent, addEntity, defineQuery, removeComponent } from "bitecs";
1+
import { addComponent, addEntity, defineQuery, enterQuery, removeComponent } from "bitecs";
22
import { PositionalAudio, Audio as StereoAudio, AudioListener as ThreeAudioListener } from "three";
33
import { HubsWorld } from "../app";
44
import { AudioEmitter, AudioSettingsChanged, MediaVideoData } from "../bit-components";
@@ -94,7 +94,13 @@ export function makeAudioEntity(world: HubsWorld, source: number, sourceType: So
9494
}
9595

9696
const staleAudioEmittersQuery = defineQuery([AudioEmitter, AudioSettingsChanged]);
97+
const audioEmitterQuery = defineQuery([AudioEmitter]);
98+
const audioEmitterEnterQuery = enterQuery(audioEmitterQuery);
9799
export function audioEmitterSystem(world: HubsWorld, audioSystem: AudioSystem) {
100+
audioEmitterEnterQuery(world).forEach(eid => {
101+
const audio = APP.audios.get(eid)!;
102+
audio.updateMatrixWorld(true);
103+
});
98104
staleAudioEmittersQuery(world).forEach(function (eid) {
99105
const audio = world.eid2obj.get(eid)! as PositionalAudio | StereoAudio;
100106
const settings = getCurrentAudioSettings(eid);

0 commit comments

Comments
 (0)