Beispiel #1
0
        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();
         }
     }
 }