public void RemoveListener(ListenTransformChangeEventEnum _eventEnum, Action <Transform> action) { if (action == null) { Debug.LogError("RemoveListener Fail.. action is null"); return; } int hashCode = action.GetHashCode(); Debug.Log("UnRegist Success " + _eventEnum); if (ListenPositionChange) { if (IsListenLocalTransPosition) { _eventEnum = ListenTransformChangeEventEnum.LocalPosition; } else { _eventEnum = ListenTransformChangeEventEnum.WorldPosition; } }//强制设置类型 switch (_eventEnum) { case ListenTransformChangeEventEnum.LocalPosition: #region LocalPosition if (m_OnLocalPositionChangeEventRecordDic.ContainsKey(hashCode) == false) { Debug.LogError("Not Register Event" + _eventEnum); return; } m_OnLocalPositionChangeEventRecordDic.Remove(hashCode); OnLocalPositionChangeEvent -= action; break; #endregion case ListenTransformChangeEventEnum.WorldPosition: #region WorldPosition if (m_OnWorldPositionChangeEventRecordDic.ContainsKey(hashCode) == false) { Debug.LogError("Not Register Event" + _eventEnum); return; } m_OnWorldPositionChangeEventRecordDic.Remove(hashCode); OnWorldPositionChangeEvent -= action; break; #endregion case ListenTransformChangeEventEnum.Sacle: #region Scale if (m_OnScaleChangeEventRecordDic.ContainsKey(hashCode) == false) { Debug.LogError("Not Register Event" + _eventEnum); return; } m_OnScaleChangeEventRecordDic.Remove(hashCode); OnScaleChangeEvent -= action; break; #endregion case ListenTransformChangeEventEnum.Rotation: #region Rotation if (m_OnRotationChangeEventRecordDic.ContainsKey(hashCode) == false) { Debug.LogError("Not Register Event" + _eventEnum); return; } m_OnRotationChangeEventRecordDic.Remove(hashCode); OnRotationChangeEvent -= action; break; #endregion } }
public void AddEventListenner(ListenTransformChangeEventEnum _eventEnum, Action <Transform> action) { if (action == null) { Debug.LogError("AddEventListenner Fail.. action is null"); return; } int hashCode = action.GetHashCode(); Debug.Log("Register Success " + _eventEnum); if (ListenPositionChange) { if (IsListenLocalTransPosition) { _eventEnum = ListenTransformChangeEventEnum.LocalPosition; } else { _eventEnum = ListenTransformChangeEventEnum.WorldPosition; } }//强制设置类型 switch (_eventEnum) { case ListenTransformChangeEventEnum.LocalPosition: #region LocalPosition if (m_OnLocalPositionChangeEventRecordDic.ContainsKey(hashCode)) { Debug.LogError("Repeat Add Event" + _eventEnum); return; } //重复注册检测 m_OnLocalPositionChangeEventRecordDic.Add(hashCode, action); OnLocalPositionChangeEvent += action; break; #endregion case ListenTransformChangeEventEnum.WorldPosition: #region WorldPostion if (m_OnWorldPositionChangeEventRecordDic.ContainsKey(hashCode)) { Debug.LogError("Repeat Add Event" + _eventEnum); return; } //重复注册检测 m_OnWorldPositionChangeEventRecordDic.Add(hashCode, action); OnWorldPositionChangeEvent += action; #endregion break; case ListenTransformChangeEventEnum.Sacle: #region Scale if (m_OnScaleChangeEventRecordDic.ContainsKey(hashCode)) { Debug.LogError("Repeat Add Event" + _eventEnum); return; } //重复注册检测 m_OnScaleChangeEventRecordDic.Add(hashCode, action); OnScaleChangeEvent += action; #endregion break; case ListenTransformChangeEventEnum.Rotation: #region Rotation if (m_OnRotationChangeEventRecordDic.ContainsKey(hashCode)) { Debug.LogError("Repeat Add Event" + _eventEnum); return; } //重复注册检测 Debug.Log("Register Success " + _eventEnum); m_OnRotationChangeEventRecordDic.Add(hashCode, action); OnRotationChangeEvent += action; #endregion break; } }