예제 #1
0
        public IEnumerator VolumeIsUnmutedWhenUserEntersScene()
        {
            // We disable SceneController monobehaviour to avoid its current scene id update
            sceneController.enabled = false;

            // Set current scene as a different one
            CommonScriptableObjects.sceneID.Set("unexistent-scene");

            DecentralandEntity entity = TestHelpers.CreateSceneEntity(scene);

            yield return(null);

            yield return(TestHelpers.CreateAudioSourceWithClipForEntity(entity));

            DCLAudioSource dclAudioSource = entity.gameObject.GetComponentInChildren <DCLAudioSource>();

            yield return(dclAudioSource.routine);

            AudioSource unityAudioSource = dclAudioSource.GetComponentInChildren <AudioSource>();

            // Set current scene with this scene's id
            CommonScriptableObjects.sceneID.Set(scene.sceneData.id);

            // Check the volume
            Assert.AreEqual(unityAudioSource.volume, dclAudioSource.model.volume);
        }
예제 #2
0
        public IEnumerator CreateAndLoadAudioClip(bool waitForLoading = true)
        {
            DecentralandEntity entity = TestHelpers.CreateSceneEntity(scene);

            yield return(null);

            yield return(TestHelpers.CreateAudioSourceWithClipForEntity(entity));

            DCLAudioSource dclAudioSource   = entity.gameObject.GetComponentInChildren <DCLAudioSource>();
            AudioSource    unityAudioSource = dclAudioSource.GetComponentInChildren <AudioSource>();

            Assert.IsTrue(scene.entities.ContainsKey(entity.entityId), "Entity was not created correctly!");
            Assert.IsTrue(dclAudioSource != null, "DCLAudioSource Creation Failure!");
            Assert.IsTrue(unityAudioSource != null, "Unity AudioSource Creation Failure!");

            yield return(dclAudioSource.routine);

            Assert.IsTrue(unityAudioSource.isPlaying, "Audio Source is not playing when it should!");

            //NOTE(Brian): Stop test
            yield return(TestHelpers.CreateAudioSource(scene,
                                                       entityId: entity.entityId,
                                                       audioClipId: "audioClipTest",
                                                       playing: false));

            yield return(null);

            Assert.IsTrue(!unityAudioSource.isPlaying, "Audio Source is playing when it should NOT play!");
        }
예제 #3
0
        public IEnumerator AudioIsNotLooped()
        {
            DecentralandEntity entity = TestHelpers.CreateSceneEntity(scene);

            yield return(null);

            yield return(LoadAudioClip(scene, "1", DCL.Helpers.Utils.GetTestsAssetsPath() + "/Audio/short_effect.ogg", false, true, 1));

            yield return(CreateAudioSource(scene, entity.entityId, "1", true, loop: false));

            yield return(new WaitForSeconds((scene.GetSharedComponent("1") as DCLAudioClip).audioClip.length + 0.1f));

            DCLAudioSource dclAudioSource = entity.components.Values.FirstOrDefault(x => x is DCLAudioSource) as DCLAudioSource;

            Assert.AreEqual(0, dclAudioSource.playTime);
        }
예제 #4
0
        public static IEnumerator CreateAudioSource(ParcelScene scene, string entityId, string audioClipId, bool playing, bool loop = true)
        {
            var audioSourceModel = new DCLAudioSource.Model()
            {
                audioClipId = audioClipId,
                playing     = playing,
                volume      = 1.0f,
                loop        = loop,
                pitch       = 1.0f
            };

            DCLAudioSource audioSource =
                TestHelpers.EntityComponentCreate <DCLAudioSource, DCLAudioSource.Model>(scene, scene.entities[entityId],
                                                                                         audioSourceModel);

            yield return(audioSource.routine);
        }
예제 #5
0
        public IEnumerator AudioIsNotLooped()
        {
            var entity = TestHelpers.CreateSceneEntity(scene);

            yield return(null);

            yield return(TestHelpers.LoadAudioClip(scene, "1", TestAssetsUtils.GetPath() + "/Audio/short_effect.ogg", false, true, 1));

            yield return(TestHelpers.CreateAudioSource(scene, entity.entityId, "1", true, loop: false));

            DCLAudioSource dclAudioSource = entity.components.Values.FirstOrDefault(x => x is DCLAudioSource) as DCLAudioSource;

            dclAudioSource.audioSource.time = dclAudioSource.audioSource.clip.length - 0.05f;
            yield return(new WaitForSeconds(0.1f));

            Assert.AreEqual(0, dclAudioSource.playTime);
        }
예제 #6
0
        public IEnumerator AudioIsLooped()
        {
            DecentralandEntity entity = TestHelpers.CreateSceneEntity(scene);

            yield return(null);

            yield return(TestHelpers.LoadAudioClip(scene, "1", DCL.Helpers.Utils.GetTestsAssetsPath() + "/Audio/short_effect.ogg", false, true, 1));

            yield return(TestHelpers.CreateAudioSource(scene, entity.entityId, "1", true, loop: true));

            DCLAudioSource dclAudioSource = entity.components.Values.FirstOrDefault(x => x is DCLAudioSource) as DCLAudioSource;
            float          initTime       = dclAudioSource.audioSource.clip.length - 0.05f;

            dclAudioSource.audioSource.time = initTime;
            yield return(new WaitForSeconds(0.1f));

            Assert.IsTrue(dclAudioSource.playTime > 0 && dclAudioSource.playTime < initTime);
        }
예제 #7
0
        public IEnumerator CreateAndLoadAudioClip(bool waitForLoading = true)
        {
            yield return(LoadAudioClip(scene,
                                       audioClipId: "audioClipTest",
                                       url: DCL.Helpers.Utils.GetTestsAssetsPath() + "/Audio/Train.wav",
                                       loop: true,
                                       loading: true,
                                       volume: 1.0f,
                                       waitForLoading: waitForLoading));

            DecentralandEntity entity = TestHelpers.CreateSceneEntity(scene);

            yield return(null);

            //NOTE(Brian): Play test
            yield return(CreateAudioSource(scene,
                                           entityId: entity.entityId,
                                           audioClipId: "audioClipTest",
                                           playing: true));

            DCLAudioSource dclAudioSource   = entity.gameObject.GetComponentInChildren <DCLAudioSource>();
            AudioSource    unityAudioSource = dclAudioSource.GetComponentInChildren <AudioSource>();

            Assert.IsTrue(scene.entities.ContainsKey(entity.entityId), "Entity was not created correctly!");
            Assert.IsTrue(dclAudioSource != null, "DCLAudioSource Creation Failure!");
            Assert.IsTrue(unityAudioSource != null, "Unity AudioSource Creation Failure!");

            yield return(dclAudioSource.routine);

            Assert.IsTrue(unityAudioSource.isPlaying, "Audio Source is not playing when it should!");

            //NOTE(Brian): Stop test
            yield return(CreateAudioSource(scene,
                                           entityId: entity.entityId,
                                           audioClipId: "audioClipTest",
                                           playing: false));

            yield return(null);

            Assert.IsTrue(!unityAudioSource.isPlaying, "Audio Source is playing when it should NOT play!");
        }
예제 #8
0
        public IEnumerator VolumeWhenAudioCreatedWithNoUserInScene()
        {
            // We disable SceneController monobehaviour to avoid its current scene id update
            sceneController.enabled = false;

            // Set current scene as a different one
            CommonScriptableObjects.sceneID.Set("unexistent-scene");

            var entity = TestHelpers.CreateSceneEntity(scene);

            yield return(null);

            yield return(TestHelpers.CreateAudioSourceWithClipForEntity(entity));

            DCLAudioSource dclAudioSource = entity.gameObject.GetComponentInChildren <DCLAudioSource>();

            yield return(dclAudioSource.routine);

            AudioSource unityAudioSource = dclAudioSource.GetComponentInChildren <AudioSource>();

            // Check the volume
            Assert.AreEqual(0f, unityAudioSource.volume);
        }