public IEnumerator AudioClipMissingValuesGetDefaultedOnUpdate() { // 1. Create component with non-default configs DCLAudioClip.Model componentModel = new DCLAudioClip.Model { loop = true, shouldTryToLoad = false, volume = 0.8f }; DCLAudioClip audioClip = CreateAudioClip(componentModel); yield return(audioClip.routine); // 2. Check configured values Assert.IsTrue(audioClip.model.loop); Assert.IsFalse(audioClip.model.shouldTryToLoad); Assert.AreEqual(0.8f, audioClip.model.volume); // 3. Update component with missing values componentModel = new DCLAudioClip.Model { }; scene.SharedComponentUpdate(audioClip.id, JsonUtility.ToJson(componentModel)); yield return(audioClip.routine); // 4. Check defaulted values Assert.IsFalse(audioClip.model.loop); Assert.IsTrue(audioClip.model.shouldTryToLoad); Assert.AreEqual(1f, audioClip.model.volume); }
public static IEnumerator LoadAudioClip(ParcelScene scene, string audioClipId, string url, bool loop, bool loading, float volume, bool waitForLoading = true) { DCLAudioClip.Model model = new DCLAudioClip.Model { url = url, loop = loop, shouldTryToLoad = loading, volume = volume }; DCLAudioClip audioClip = scene.SharedComponentCreate( audioClipId, (int)CLASS_ID.AUDIO_CLIP ) as DCLAudioClip; scene.SharedComponentUpdate(audioClipId, JsonUtility.ToJson(model)); yield return(audioClip.routine); Assert.IsTrue(scene.disposableComponents.ContainsKey(audioClipId), "Shared component was not created correctly!"); if (waitForLoading) { yield return(new WaitUntil( () => { return audioClip.loadingState != DCLAudioClip.LoadState.LOADING_IN_PROGRESS && audioClip.loadingState != DCLAudioClip.LoadState.IDLE; })); } }
public void AudioClip_OnReadyBeforeLoading() { DCLAudioClip dclAudioClip = CreateAudioClip(DCL.Helpers.Utils.GetTestsAssetsPath() + "/Audio/short_effect.ogg", true, true, 1); bool isOnReady = false; dclAudioClip.CallWhenReady((x) => { isOnReady = true; }); Assert.IsTrue(isOnReady); //DCLAudioClip is ready on creation }
public IEnumerator AudioClip_OnReadyWaitLoading() { DCLAudioClip dclAudioClip = CreateAudioClip(DCL.Helpers.Utils.GetTestsAssetsPath() + "/Audio/short_effect.ogg", true, true, 1); bool isOnReady = false; dclAudioClip.CallWhenReady((x) => { isOnReady = true; }); yield return(dclAudioClip.routine); Assert.IsTrue(isOnReady); }
public IEnumerator AudioClip_OnReadyAfterLoadingInstantlyCalled() { DCLAudioClip dclAudioClip = CreateAudioClip(TestAssetsUtils.GetPath() + "/Audio/short_effect.ogg", true, true, 1); yield return(dclAudioClip.routine); bool isOnReady = false; dclAudioClip.CallWhenReady((x) => { isOnReady = true; }); Assert.IsTrue(isOnReady); }
public BaseDisposable SharedComponentCreate(string id, string name, int classId) { SceneController.i.OnMessageDecodeStart?.Invoke("ComponentCreated"); sharedComponentCreatedMessage.id = id; sharedComponentCreatedMessage.name = name; sharedComponentCreatedMessage.classId = classId; SceneController.i.OnMessageDecodeEnds?.Invoke("ComponentCreated"); BaseDisposable disposableComponent; if (disposableComponents.TryGetValue(sharedComponentCreatedMessage.id, out disposableComponent)) { return(disposableComponent); } BaseDisposable newComponent = null; switch ((CLASS_ID)sharedComponentCreatedMessage.classId) { case CLASS_ID.BOX_SHAPE: { newComponent = new BoxShape(this); break; } case CLASS_ID.SPHERE_SHAPE: { newComponent = new SphereShape(this); break; } case CLASS_ID.CONE_SHAPE: { newComponent = new ConeShape(this); break; } case CLASS_ID.CYLINDER_SHAPE: { newComponent = new CylinderShape(this); break; } case CLASS_ID.PLANE_SHAPE: { newComponent = new PlaneShape(this); break; } case CLASS_ID.GLTF_SHAPE: { newComponent = new GLTFShape(this); break; } case CLASS_ID.NFT_SHAPE: { newComponent = new NFTShape(this); break; } case CLASS_ID.OBJ_SHAPE: { newComponent = new OBJShape(this); break; } case CLASS_ID.BASIC_MATERIAL: { newComponent = new BasicMaterial(this); break; } case CLASS_ID.PBR_MATERIAL: { newComponent = new PBRMaterial(this); break; } case CLASS_ID.AUDIO_CLIP: { newComponent = new DCLAudioClip(this); break; } case CLASS_ID.TEXTURE: { newComponent = new DCLTexture(this); break; } case CLASS_ID.UI_INPUT_TEXT_SHAPE: { newComponent = new UIInputText(this); break; } case CLASS_ID.UI_FULLSCREEN_SHAPE: case CLASS_ID.UI_SCREEN_SPACE_SHAPE: { if (uiScreenSpace == null) { newComponent = new UIScreenSpace(this); } break; } case CLASS_ID.UI_CONTAINER_RECT: { newComponent = new UIContainerRect(this); break; } case CLASS_ID.UI_SLIDER_SHAPE: { newComponent = new UIScrollRect(this); break; } case CLASS_ID.UI_CONTAINER_STACK: { newComponent = new UIContainerStack(this); break; } case CLASS_ID.UI_IMAGE_SHAPE: { newComponent = new UIImage(this); break; } case CLASS_ID.UI_TEXT_SHAPE: { newComponent = new UIText(this); break; } case CLASS_ID.VIDEO_CLIP: { newComponent = new DCLVideoClip(this); break; } case CLASS_ID.VIDEO_TEXTURE: { newComponent = new DCLVideoTexture(this); break; } case CLASS_ID.FONT: { newComponent = new DCLFont(this); break; } default: Debug.LogError($"Unknown classId"); break; } if (newComponent != null) { newComponent.id = sharedComponentCreatedMessage.id; disposableComponents.Add(sharedComponentCreatedMessage.id, newComponent); if (state != State.READY) { disposableNotReady.Add(id); } } return(newComponent); }
public BaseDisposable SharedComponentCreate(string id, int classId) { BaseDisposable disposableComponent; if (disposableComponents.TryGetValue(id, out disposableComponent)) { return(disposableComponent); } BaseDisposable newComponent = null; switch ((CLASS_ID)classId) { case CLASS_ID.BOX_SHAPE: { newComponent = new BoxShape(this); break; } case CLASS_ID.SPHERE_SHAPE: { newComponent = new SphereShape(this); break; } case CLASS_ID.CONE_SHAPE: { newComponent = new ConeShape(this); break; } case CLASS_ID.CYLINDER_SHAPE: { newComponent = new CylinderShape(this); break; } case CLASS_ID.PLANE_SHAPE: { newComponent = new PlaneShape(this); break; } case CLASS_ID.GLTF_SHAPE: { newComponent = new GLTFShape(this); break; } case CLASS_ID.NFT_SHAPE: { newComponent = new NFTShape(this); break; } case CLASS_ID.OBJ_SHAPE: { newComponent = new OBJShape(this); break; } case CLASS_ID.BASIC_MATERIAL: { newComponent = new BasicMaterial(this); break; } case CLASS_ID.PBR_MATERIAL: { newComponent = new PBRMaterial(this); break; } case CLASS_ID.AUDIO_CLIP: { newComponent = new DCLAudioClip(this); break; } case CLASS_ID.TEXTURE: { newComponent = new DCLTexture(this); break; } case CLASS_ID.UI_INPUT_TEXT_SHAPE: { newComponent = new UIInputText(this); break; } case CLASS_ID.UI_FULLSCREEN_SHAPE: case CLASS_ID.UI_SCREEN_SPACE_SHAPE: { if (GetSharedComponent <UIScreenSpace>() == null) { newComponent = new UIScreenSpace(this); } break; } case CLASS_ID.UI_CONTAINER_RECT: { newComponent = new UIContainerRect(this); break; } case CLASS_ID.UI_SLIDER_SHAPE: { newComponent = new UIScrollRect(this); break; } case CLASS_ID.UI_CONTAINER_STACK: { newComponent = new UIContainerStack(this); break; } case CLASS_ID.UI_IMAGE_SHAPE: { newComponent = new UIImage(this); break; } case CLASS_ID.UI_TEXT_SHAPE: { newComponent = new UIText(this); break; } case CLASS_ID.VIDEO_CLIP: { newComponent = new DCLVideoClip(this); break; } case CLASS_ID.VIDEO_TEXTURE: { newComponent = new DCLVideoTexture(this); break; } case CLASS_ID.FONT: { newComponent = new DCLFont(this); break; } case CLASS_ID.NAME: { newComponent = new DCLName(this); break; } case CLASS_ID.LOCKED_ON_EDIT: { newComponent = new DCLLockedOnEdit(this); break; } case CLASS_ID.VISIBLE_ON_EDIT: { newComponent = new DCLVisibleOnEdit(this); break; } default: Debug.LogError($"Unknown classId"); break; } if (newComponent != null) { newComponent.id = id; disposableComponents.Add(id, newComponent); OnAddSharedComponent?.Invoke(id, newComponent); } return(newComponent); }