salahzar icon

PlaySoundWhenEnter.js

salahzar | PRO | 11/14/21 06:24:18 PM UTC | 0 ⭐ | 1305 👁️ | Never ⏰ | []
JavaScript |

2.03 KB

|

None

|

0 👍

/

0 👎

print ("Script Entity Enter Loaded");
(function () {
    // position Vec3 (Vec3.ZERO)
    // orientation Quaternion (Quaternion.IDENTITY)
    // volume Number 1.0
    // pitch 0.0625 – 16.0   1 no change in pitch min +- 2 octaves
    // loop boolean false
    // secondOffset number 0.0
    // localOnly boolean false
    // { "soundURL":"http","position": Vec3.ZERO, "volume": 1.0, "pitch": 1.0, "loop": false, "secondOffset": 0.0, "localOnly": false }
    var soundURL = null;//SoundCache.getSound(SOUND_URL);
    var lastSoundURL = null;
    var soundVolume = null;
    var soundData = null;
    var pitch = null;
    var injector = null;
    var properties = null;
 
 
    this.leaveEntity = function (entityID) {
        print("Entity Leaving bounding box");
    }
    this.enterEntity = function (entityID) {
        print("Entity Entered in bounding box");
        properties = Entities.getEntityProperties(entityID, ["position", "userData"]);
        if (!properties.userData) {
            print("Click Sound emitter " + entityID + " missing user data.");
            return;
        } try {
            soundData = JSON.parse(properties.userData);
            print("SoundURL " + soundData.soundURL);
            // need to check that all this stuff even exists and throw error if not.s
            soundURL = SoundCache.getSound(soundData.soundURL);
            //receiverName = soundData.receiverName;
            soundVolume = !isNaN(soundData.soundVolume) ? Number(soundData.soundVolume) : 0.0;
            soundLoop = soundData.isLoop;
            soundLocal = soundData.isLocal;
            pitch = soundData.pitch;
        } catch (e) { }
 
 
        injector = Audio.playSound(soundURL, {
            position: properties.position,
            volume: soundVolume,
            loop: soundLoop,
            localOnly: soundLocal,
            pitch: pitch
        });
 
    }
    this.unload = function () {
        if (injector) {
            injector.stop();
            injector = null;
        }
    };
})

Comments