protected void ProcessPressUp(ColliderButtonEventData eventData, ButtonHandlers handlers) { IndexedSet <GameObject> tmp; eventData.isPressed = false; tmp = eventData.lastPressedRawObjects; eventData.lastPressedRawObjects = eventData.pressedRawObjects; eventData.pressedRawObjects = tmp; // press up handlers.pressUpHandlers.AddRange(eventData.pressedHandlers); tmp = eventData.lastPressedHandlers; eventData.lastPressedHandlers = eventData.pressedHandlers; eventData.pressedHandlers = tmp; // drag end handlers.dragEndHandlers.AddRange(eventData.draggingHandlers); // drop if (eventData.isDragging) { GetEventHandlersFromHoveredColliders <IColliderEventDropHandler>(handlers.dropHandlers); } // click end (execute only if pressDown handler and pressUp handler are the same) GetMatchedEventHandlersFromHoveredColliders <IColliderEventClickHandler>(h => eventData.clickingHandlers.Remove(h), handlers.clickHandlers); eventData.pressedRawObjects.Clear(); eventData.pressedHandlers.Clear(); eventData.clickingHandlers.Clear(); eventData.draggingHandlers.Clear(); }
private ButtonHandlers GetButtonHandlers(int i) { while (i >= buttonEventHandlerList.Count) { buttonEventHandlerList.Add(null); } return(buttonEventHandlerList[i] ?? (buttonEventHandlerList[i] = new ButtonHandlers())); }
protected void ProcessPressing(ColliderButtonEventData eventData, ButtonHandlers handlers) { // dragging for (int i = eventData.draggingHandlers.Count - 1; i >= 0; --i) { handlers.dragUpdateHandlers.Add(eventData.draggingHandlers[i]); } }
private ButtonHandlers GetButtonHandlers(int i) { // jiao-相当于初始化?先添加为null,输出时new while (i >= buttonEventHandlerList.Count) { buttonEventHandlerList.Add(null); } return(buttonEventHandlerList[i] ?? (buttonEventHandlerList[i] = new ButtonHandlers())); }
protected void ProcessPressDown(ColliderButtonEventData eventData, ButtonHandlers handlers) { eventData.isPressed = true; eventData.pressPosition = transform.position; eventData.pressRotation = transform.rotation; // click start GetEventHandlersFromHoveredColliders <IColliderEventClickHandler>(eventData.clickingHandlers); // press down GetEventHandlersFromHoveredColliders <IColliderEventPressDownHandler>(handlers.pressDownHandlers); // drag start GetEventHandlersFromHoveredColliders <IColliderEventDragStartHandler>(eventData.draggingHandlers, handlers.dragStartHandlers); }
protected void ProcessPressUp(ColliderButtonEventData eventData, ButtonHandlers handlers) { eventData.isPressed = false; // press up GetEventHandlersFromHoveredColliders <IColliderEventPressUpHandler>(handlers.pressUpHandlers); // drag end for (int i = eventData.draggingHandlers.Count - 1; i >= 0; --i) { handlers.dragEndHandlers.Add(eventData.draggingHandlers[i]); } // drop if (eventData.draggingHandlers.Count > 0) { GetEventHandlersFromHoveredColliders <IColliderEventDropHandler>(handlers.dropHandlers); } // click end (execute only if pressDown handler and pressUp handler are the same) for (int i = stayingColliders.Count - 1; i >= 0; --i) { var collider = stayingColliders[i]; if (collider == null) { continue; } var handler = ExecuteEvents.GetEventHandler <IColliderEventClickHandler>(collider.gameObject); if (ReferenceEquals(handler, null)) { continue; } if (!eventData.clickingHandlers.Remove(handler)) { continue; } handlers.clickHandlers.Add(handler); } eventData.clickingHandlers.Clear(); eventData.draggingHandlers.Clear(); }
protected void ProcessPressDown(ColliderButtonEventData eventData, ButtonHandlers handlers) { eventData.isPressed = true; eventData.pressPosition = transform.position; eventData.pressRotation = transform.rotation; for (int i = stayingColliders.Count - 1; i >= 0; --i) { if (stayingColliders[i] != null) { eventData.pressedRawObjects.AddUnique(stayingColliders[i].gameObject); } } // press down GetEventHandlersFromHoveredColliders <IColliderEventPressDownHandler>(eventData.pressedHandlers, handlers.pressDownHandlers); // click start GetEventHandlersFromHoveredColliders <IColliderEventClickHandler>(eventData.clickingHandlers); // drag start GetEventHandlersFromHoveredColliders <IColliderEventDragStartHandler>(eventData.draggingHandlers, handlers.dragStartHandlers); }
protected void ProcessPressing(ColliderButtonEventData eventData, ButtonHandlers handlers) { // dragging handlers.dragUpdateHandlers.AddRange(eventData.draggingHandlers); }