// Update is called once per frame
        void Update()
        {
            bool leftMouseButtonDown;
            bool primaryTouchDown;
            int  touchCount;
            int  primaryTouchFingerId;

#if ENABLE_INPUT_SYSTEM
            leftMouseButtonDown  = UnityEngine.InputSystem.Mouse.current.leftButton.wasPressedThisFrame;
            primaryTouchDown     = UnityEngine.InputSystem.Touchscreen.current.primaryTouch.press.wasPressedThisFrame;
            touchCount           = UnityEngine.InputSystem.Touchscreen.current.touches.Count;
            primaryTouchFingerId = UnityEngine.InputSystem.Touchscreen.current.primaryTouch.touchId.ReadValue();
#else
            leftMouseButtonDown = Input.GetMouseButtonDown(0);
            touchCount          = Input.touchCount;
            primaryTouchDown    = touchCount > 0 && Input.GetTouch(0).phase == TouchPhase.Began;
            primaryTouchId      = Input.touches[0].fingerId;
#endif

            if (leftMouseButtonDown || (primaryTouchDown))
            {
                try {
                    if (EventSystem.current.IsPointerOverGameObject() ||
                        (touchCount > 0 && EventSystem.current.IsPointerOverGameObject(primaryTouchFingerId))
                        )
                    {
                        if (null != EventSystem.current.currentSelectedGameObject)
                        {
                            string     name = EventSystem.current.currentSelectedGameObject.name;
                            GameObject go   = EventSystem.current.currentSelectedGameObject;
                            if (null != go.GetComponent <UnityEngine.UI.Button> () &&
                                null != eventBindingManager)
                            {
                                var eventBindings = eventBindingManager.eventBindings;
                                FBSDKEventBinding matchedBinding = null;
                                if (null != eventBindings)
                                {
                                    foreach (var eventBinding in eventBindings)
                                    {
                                        if (FBSDKViewHiearchy.CheckGameObjectMatchPath(go, eventBinding.path))
                                        {
                                            matchedBinding = eventBinding;
                                            break;
                                        }
                                    }
                                }

                                if (null != matchedBinding)
                                {
                                    FB.LogAppEvent(matchedBinding.eventName);
                                }
                            }
                        }
                    }
                }
                catch (Exception) {
                    return;
                }
            }
        }
        // Update is called once per frame
        void Update()
        {
            if (Input.GetMouseButtonDown(0) || (Input.touchCount > 0 && Input.GetTouch(0).phase == TouchPhase.Began))
            {
                try {
                    if (EventSystem.current.IsPointerOverGameObject() ||
                        (Input.touchCount > 0 && EventSystem.current.IsPointerOverGameObject(Input.touches [0].fingerId))
                        )
                    {
                        if (null != EventSystem.current.currentSelectedGameObject)
                        {
                            string     name = EventSystem.current.currentSelectedGameObject.name;
                            GameObject go   = EventSystem.current.currentSelectedGameObject;
                            if (null != go.GetComponent <UnityEngine.UI.Button> () &&
                                null != eventBindingManager)
                            {
                                var eventBindings = eventBindingManager.eventBindings;
                                FBSDKEventBinding matchedBinding = null;
                                if (null != eventBindings)
                                {
                                    foreach (var eventBinding in eventBindings)
                                    {
                                        if (FBSDKViewHiearchy.CheckGameObjectMatchPath(go, eventBinding.path))
                                        {
                                            matchedBinding = eventBinding;
                                            break;
                                        }
                                    }
                                }

                                if (null != matchedBinding)
                                {
                                    FB.LogAppEvent(matchedBinding.eventName);
                                }
                            }
                        }
                    }
                }
                catch (Exception) {
                    return;
                }
            }
        }