public static IEnumerator TestShapeOnPointerEventCollider(DecentralandEntity entity) { Renderer[] renderers = entity.meshesInfo.renderers; Assert.IsTrue(renderers.Length > 0); var onClickComponentModel = new OnClick.Model() { type = OnClick.NAME, uuid = "onClick" }; var onClickComponent = TestHelpers.EntityComponentCreate <OnClick, OnClick.Model>(entity.scene, entity, onClickComponentModel, CLASS_ID_COMPONENT.UUID_CALLBACK); yield return(onClickComponent.routine); Collider onPointerEventCollider; for (int i = 0; i < renderers.Length; i++) { Assert.IsTrue(renderers[i].transform.childCount > 0, "OnClick collider should exist as this mesh's child"); onPointerEventCollider = renderers[i].transform.GetChild(0).GetComponent <Collider>(); Assert.IsTrue(onPointerEventCollider != null); Assert.IsTrue(onPointerEventCollider.gameObject.layer == PhysicsLayers.onPointerEventLayer); // check the onClick collide enabled state is the same as the renderer's state Assert.IsTrue(onPointerEventCollider.enabled == renderers[i].enabled); } entity.scene.EntityComponentRemove( entity.entityId, onClickComponent.name ); yield return(null); }
IEnumerator Start() { yield return(InitScene()); string entityId = "1"; var entity = TestHelpers.CreateSceneEntity(scene, entityId); string shapeId = TestHelpers.CreateAndSetShape(scene, entityId, DCL.Models.CLASS_ID.GLTF_SHAPE, JsonConvert.SerializeObject(new { src = DCL.Helpers.Utils.GetTestsAssetsPath() + "/GLB/Lantern/Lantern.glb" })); LoadWrapper_GLTF gltfShape = GLTFShape.GetLoaderForEntity(entity) as LoadWrapper_GLTF; yield return(new DCL.WaitUntil(() => gltfShape.alreadyLoaded, 7f)); TestHelpers.SetEntityTransform(scene, entity, new Vector3(8, -1, 8), Quaternion.identity, new Vector3(0.5f, 0.5f, 0.5f)); var onClickComponentModel = new OnClick.Model() { type = OnClick.NAME, uuid = "pointerevent-1", button = this.button.ToString() }; var onClickComponent = TestHelpers.EntityComponentCreate <OnClick, OnClick.Model>(scene, entity, onClickComponentModel, CLASS_ID_COMPONENT.UUID_CALLBACK); scene.sceneLifecycleHandler.SetInitMessagesDone(); OnPointerEvent.enableInteractionHoverFeedback = true; }
public IEnumerator BeDestroyedCorrectlyWhenReceivingComponentDestroyMessage() { var shape = TestHelpers.CreateEntityWithBoxShape(scene, Vector3.zero, true); IDCLEntity entity = shape.attachedEntities.First(); yield return(shape.routine); string onPointerId = "pointerevent-1"; var model = new OnClick.Model() { type = OnClick.NAME, uuid = onPointerId }; TestHelpers.EntityComponentCreate <OnClick, OnClick.Model>(scene, entity, model, CLASS_ID_COMPONENT.UUID_CALLBACK); model.type = OnPointerDown.NAME; TestHelpers.EntityComponentCreate <OnPointerDown, OnPointerDown.Model>(scene, entity, model, CLASS_ID_COMPONENT.UUID_CALLBACK); model.type = OnPointerUp.NAME; TestHelpers.EntityComponentCreate <OnPointerUp, OnPointerUp.Model>(scene, entity, model, CLASS_ID_COMPONENT.UUID_CALLBACK); Assert.IsTrue(entity.components.ContainsKey(CLASS_ID_COMPONENT.UUID_ON_CLICK)); Assert.IsTrue(entity.components.ContainsKey(CLASS_ID_COMPONENT.UUID_ON_UP)); Assert.IsTrue(entity.components.ContainsKey(CLASS_ID_COMPONENT.UUID_ON_DOWN)); scene.EntityComponentRemove(entity.entityId, OnPointerDown.NAME); scene.EntityComponentRemove(entity.entityId, OnPointerUp.NAME); scene.EntityComponentRemove(entity.entityId, OnClick.NAME); Assert.IsFalse(entity.components.ContainsKey(CLASS_ID_COMPONENT.UUID_ON_CLICK)); Assert.IsFalse(entity.components.ContainsKey(CLASS_ID_COMPONENT.UUID_ON_UP)); Assert.IsFalse(entity.components.ContainsKey(CLASS_ID_COMPONENT.UUID_ON_DOWN)); }