Ejemplo n.º 1
0
    //把事件透下去
    private void Pass <T>(PointerEventData data, ExecuteEvents.EventFunction <T> function, EventInterfaceTypes type) where T : IEventSystemHandler
    {
        List <RaycastResult> results = new List <RaycastResult>();

        EventSystem.current?.RaycastAll(data, results);
        GameObject current = data.pointerCurrentRaycast.gameObject;

        for (int i = 0; i < results.Count; i++)
        {
            if (current != results[i].gameObject)
            {
                Logger.LogInfo("{0} handle click event...", results[i].gameObject);
                ExecuteEvents.Execute(results[i].gameObject, data, function, type);
                break;
            }
        }
    }
Ejemplo n.º 2
0
    private static void OnPreExecute(GameObject target, EventInterfaceTypes eventType)
    {
        onGlobalUIEvent?.Invoke(target, eventType);

        var tag = target.tag;
        var s   = string.IsNullOrEmpty(tag) ? UISoundEffect.empty : UISoundEffect.GetSound(tag, target.name);

        string[] ss = null;

        switch (eventType)
        {
        case EventInterfaceTypes.PointerEnter:              ss = s.onPointerEnter;             onPointerEnter?.Invoke(target);            break;

        case EventInterfaceTypes.PointerExit:               ss = s.onPointerExit;              onPointerExit?.Invoke(target);             break;

        case EventInterfaceTypes.PointerDown:               ss = s.onPointerDown;              onPointerDown?.Invoke(target);             break;

        case EventInterfaceTypes.PointerUp:                 ss = s.onPointerUp;                onPointerUp?.Invoke(target);               break;

        case EventInterfaceTypes.PointerClick:              ss = s.onPointerClick;             onPointerClick?.Invoke(target);            break;

        case EventInterfaceTypes.BeginDrag:                 ss = s.onBeginDrag;                onBeginDrag?.Invoke(target);               break;

        case EventInterfaceTypes.InitializePotentialDrag:   ss = s.onInitializePotentialDrag;  onInitializePotentialDrag?.Invoke(target); break;

        case EventInterfaceTypes.Drag:                      ss = s.onDrag;                     onDrag?.Invoke(target);                    break;

        case EventInterfaceTypes.EndDrag:                   ss = s.onEndDrag;                  onEndDrag?.Invoke(target);                 break;

        case EventInterfaceTypes.Drop:                      ss = s.onDrop;                     onDrop?.Invoke(target);                    break;

        case EventInterfaceTypes.Scroll:                    ss = s.onScroll;                   onScroll?.Invoke(target);                  break;

        case EventInterfaceTypes.UpdateSelected:            ss = s.onUpdateSelected;           onUpdateSelected?.Invoke(target);          break;

        case EventInterfaceTypes.Select:                    ss = s.onSelect;                   onSelect?.Invoke(target);                  break;

        case EventInterfaceTypes.Deselect:                  ss = s.onDeselect;                 onDeselect?.Invoke(target);                break;

        case EventInterfaceTypes.Move:                      ss = s.onMove;                     onMove?.Invoke(target);                    break;

        case EventInterfaceTypes.Submit:                    ss = s.onSubmit;                   onSubmit?.Invoke(target);                  break;

        case EventInterfaceTypes.Cancel:                    ss = s.onCancel;                   onCancel?.Invoke(target);                  break;

        case EventInterfaceTypes.Default:
        default: break;
        }

        var a = UISoundEffect.GetSound(ss);

        if (!string.IsNullOrEmpty(a))
        {
            if (s.type != AudioTypes.Sound)
            {
                var c = s.type == AudioTypes.Voice ? instance.m_lastVoice : instance.m_lastMusic;
                if (!string.IsNullOrEmpty(c))
                {
                    if (c == a && !s.@override && AudioManager.IsInPlayListOrLoading(a))
                    {
                        return;
                    }
                    AudioManager.Stop(c);
                }

                if (s.type == AudioTypes.Voice)
                {
                    instance.m_lastVoice = a;
                    AudioManager.PlayVoice(a);
                }
                else
                {
                    instance.m_lastMusic = a;
                    AudioManager.PlayMusic(a);
                }
            }
            else
            {
                AudioManager.PlaySound(a);
            }
        }
    }