示例#1
0
        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]);
                }
            }
        }