public void DisableGesture <T> (CocoGestureType gestureType, System.Action <T> onGestureAction) where T : Gesture, new () { if (onGestureAction == null) { return; } if (!_gestureConfigDataDic.ContainsKey(gestureType)) { return; } CocoTouchPriorityGestureConfigData <T> configData = _gestureConfigDataDic [gestureType] as CocoTouchPriorityGestureConfigData <T>; if (configData == null) { return; } configData.OnGesture -= onGestureAction; if (configData.OnGesture == null) { UnListenGesture(gestureType); _gestureConfigDataDic.Remove(gestureType); } }
public void EnableGesture <T> (CocoGestureType gestureType, System.Action <T> onGestureAction) where T : Gesture, new () { if (onGestureAction == null) { return; } CocoTouchPriorityGestureConfigData <T> configData = GetOrAddGestureConfigData <T> (gestureType); if (configData != null) { configData.OnGesture += onGestureAction; } }
private CocoTouchPriorityGestureConfigData <T> GetOrAddGestureConfigData <T> (CocoGestureType gestureType) where T : Gesture, new () { CocoTouchPriorityGestureConfigData <T> configData; if (_gestureConfigDataDic.ContainsKey(gestureType)) { configData = _gestureConfigDataDic [gestureType] as CocoTouchPriorityGestureConfigData <T>; if (configData == null) { Debug.LogErrorFormat("{0}->GetOrAddGestureConfigData: can NOT convert gesture [{1}] to type [{2}].", GetType().Name, gestureType, typeof(CocoTouchPriorityGestureConfigData <T>).Name); } } else { ListenGesture(gestureType); configData = new CocoTouchPriorityGestureConfigData <T> (gestureType); _gestureConfigDataDic.Add(gestureType, configData); } return(configData); }