public void HandleGraphChanges() { foreach (var propertyGuid in m_Graph.removedProperties) { BlackboardRow row; if (m_PropertyRows.TryGetValue(propertyGuid, out row)) { row.RemoveFromHierarchy(); m_PropertyRows.Remove(propertyGuid); } } foreach (var property in m_Graph.addedProperties) { AddProperty(property, index: m_Graph.GetShaderPropertyIndex(property)); } if (m_Graph.movedProperties.Any()) { foreach (var row in m_PropertyRows.Values) { row.RemoveFromHierarchy(); } foreach (var property in m_Graph.properties) { m_Section.Add(m_PropertyRows[property.guid]); } } }