private void Obj_RegisterEventListener(string _serializationID, IRuntimeSerializationEventListener _newListener) { if (string.IsNullOrEmpty(_serializationID)) { Debug.LogError("[RS] Failed to register. Serialization identifier cant be null / empty."); return; } if (_newListener == null) { Debug.LogError("[RS] Failed to register. Listener instance cant be null."); return; } // Get list of callbacks registered for this identifier List <IRuntimeSerializationEventListener> _eventListeners = GetEventListeners(_serializationID); if (_eventListeners == null) { _eventListeners = new List <IRuntimeSerializationEventListener>(); m_serializationListeners[_serializationID] = _eventListeners; } // Make sure we dont have duplicates if (!_eventListeners.Contains(_newListener)) { _eventListeners.Add(_newListener); } }
/// <summary> /// Unregister object from receiving serialization events. /// </summary> /// <param name="_serializationID">Identifier associated with serialization data.</param> /// <param name="_callback">Target object to be unregistered from serialization callbacks.</param> public static void UnRegisterEventListener(string _serializationID, IRuntimeSerializationEventListener _listener) { if (Instance == null) { Debug.LogError("[RS] RSManager instance not found."); return; } Instance.Obj_UnRegisterEventListener(_serializationID, _listener); }
private void OnDeserializationFinished(string _serializationID, object _deserializedObject) { // Get callback list associated with this identifier List <IRuntimeSerializationEventListener> _eventListeners = GetEventListeners(_serializationID); if (_eventListeners == null) { return; } for (int _iter = 0; _iter < _eventListeners.Count; _iter++) { IRuntimeSerializationEventListener _listener = _eventListeners[_iter]; if (_listener != null) { _listener.OnAfterRuntimeDeserialize(_serializationID, _deserializedObject); } } }
private void Obj_UnRegisterEventListener(string _serializationID, IRuntimeSerializationEventListener _listener) { if (string.IsNullOrEmpty(_serializationID)) { Debug.LogError("[RS] Failed to unregister. Serialization identifier cant be null / empty."); return; } if (_listener == null) { Debug.LogError("[RS] Failed to unregister. Listener instance cant be null."); return; } // Get list of callbacks registered for this identifier List <IRuntimeSerializationEventListener> _eventListeners = GetEventListeners(_serializationID); // Remove target callback from the callback list if (_eventListeners != null) { _eventListeners.Remove(_listener); } }