protected virtual void SyncSettings() { Profiler.BeginSample("VFXNodeUI.SyncSettings"); if (settingsContainer == null && controller.settings != null) { object settings = controller.settings; settingsContainer = this.Q("settings"); m_SettingsDivider = this.Q("settings-divider"); foreach (var setting in controller.settings) { AddSetting(setting); } } if (settingsContainer != null) { var activeSettings = controller.model.GetSettings(false, VFXSettingAttribute.VisibleFlags.InGraph); for (int i = 0; i < m_Settings.Count; ++i) { m_Settings[i].RemoveFromHierarchy(); } hasSettings = false; for (int i = 0; i < m_Settings.Count; ++i) { PropertyRM prop = m_Settings[i]; if (prop != null && activeSettings.Any(s => s.field.Name == controller.settings[i].name)) { hasSettings = true; settingsContainer.Add(prop); prop.Update(); } } if (hasSettings) { settingsContainer.RemoveFromClassList("nosettings"); } else { settingsContainer.AddToClassList("nosettings"); } } if (m_SettingsDivider != null) { m_SettingsDivider.visible = hasSettingDivider && hasSettings; } Profiler.EndSample(); }
public void OnRecompile(bool valueOnly) { if (m_PropertyRM != null && controller != null) { if (!valueOnly) { controller.UpdateInfos(); bool editable = controller.editable; m_PropertyRM.propertyEnabled = editable && controller.expandedInHierachy; m_PropertyRM.indeterminate = !editable && controller.indeterminate; m_PropertyRM.Update(); } else { m_PropertyRM.UpdateValue(); } } }