Ejemplo n.º 1
0
        public static IEnumerator TestUIClickEventPropagation(string sceneId, string eventUuid, RectTransform uiObject, System.Action <bool> callback)
        {
            // We need to populate the event data with the 'pointerPressRaycast' pointing to the 'clicked' object
            PointerEventData pointerEventData = new PointerEventData(EventSystem.current);
            RaycastResult    raycastResult    = new RaycastResult();

            raycastResult.gameObject             = uiObject.gameObject;
            pointerEventData.pointerPressRaycast = raycastResult;

            string targetEventType = "SceneEvent";

            var onClickEvent = new WebInterface.OnClickEvent();

            onClickEvent.uuid = eventUuid;

            var sceneEvent = new WebInterface.SceneEvent <WebInterface.OnClickEvent>();

            sceneEvent.sceneId   = sceneId;
            sceneEvent.payload   = onClickEvent;
            sceneEvent.eventType = "uuidEvent";
            string eventJSON = JsonUtility.ToJson(sceneEvent);

            bool eventTriggered = false;

            yield return(TestHelpers.WaitForMessageFromEngine(targetEventType, eventJSON,
                                                              () =>
            {
                ExecuteEvents.ExecuteHierarchy(raycastResult.gameObject, pointerEventData,
                                               ExecuteEvents.pointerDownHandler);
            },
                                                              () =>
            {
                eventTriggered = true;
            }));

            yield return(null);

            // Callback!
            if (callback != null)
            {
                callback(eventTriggered);
            }
        }
Ejemplo n.º 2
0
        public IEnumerator TestOnClickEvent()
        {
            yield return(InputTextCreate());

            //------------------------------------------------------------------------
            // Test click events
            TMPro.TMP_InputField inputField = textInput.referencesContainer.inputField;

            string targetEventType = "SceneEvent";

            var onClickEvent = new WebInterface.OnClickEvent();

            onClickEvent.uuid = textInput.model.onClick;

            var sceneEvent = new WebInterface.SceneEvent <WebInterface.OnClickEvent>();

            sceneEvent.sceneId   = scene.sceneData.id;
            sceneEvent.payload   = onClickEvent;
            sceneEvent.eventType = "uuidEvent";
            string eventJSON = JsonUtility.ToJson(sceneEvent);

            bool eventTriggered = false;


            yield return(TestHelpers.WaitForMessageFromEngine(targetEventType, eventJSON,
                                                              () =>
            {
                UnityEngine.EventSystems.EventSystem.current.SetSelectedGameObject(inputField.gameObject, null);
                inputField.ActivateInputField();
                inputField.Select();
            },
                                                              () =>
            {
                eventTriggered = true;
            }));

            yield return(null);

            Assert.IsTrue(eventTriggered);
        }