///---------------------------------------------------------------------------------------------- ///Self Serialize blackboard public void SelfSerialize() { if (haltForUndo /*|| ParadoxNotion.Services.Threader.applicationIsPlaying || Application.isPlaying*/) { return; } var newReferences = new List <UnityEngine.Object>(); var newSerialization = JSONSerializer.Serialize(typeof(BlackboardSource), _blackboard, newReferences); if (newSerialization != _serializedBlackboard || !newReferences.SequenceEqual(_objectReferences) || (_serializedVariables == null || _serializedVariables.Length != _blackboard.variables.Count)) { haltForUndo = true; UndoUtility.RecordObjectComplete(this, UndoUtility.GetLastOperationNameOr("Blackboard Change")); haltForUndo = false; _serializedVariables = new SerializationPair[_blackboard.variables.Count]; for (var i = 0; i < _blackboard.variables.Count; i++) { var serializedVariable = new SerializationPair(); serializedVariable._json = JSONSerializer.Serialize(typeof(Variable), _blackboard.variables.ElementAt(i).Value, serializedVariable._references); _serializedVariables[i] = serializedVariable; } _serializedBlackboard = newSerialization; _objectReferences = newReferences; } }