public void UpdateAllFields() { if (!ui.nameField.isFocused) { ui.nameField.text = actor.GetDisplayName(); } if (!ui.tagsField.isFocused) { ui.tagsField.text = actor.GetJoinedTags(); } if (!ui.descriptionField.isFocused) { ui.descriptionField.text = actor.GetDescription(); } // this pattner (remove listener, set, add again) is a hack to make the undo system worl ui.hideInPlayModeToggle.onValueChanged.RemoveListener(ToggleHideInPlayMode); ui.hideInPlayModeToggle.isOn = actor.GetHideInPlayMode(); ui.hideInPlayModeToggle.onValueChanged.AddListener(ToggleHideInPlayMode); ui.isOffStageToggle.onValueChanged.RemoveListener(OnOffstageToggleChanged); ui.isOffStageToggle.isOn = actor.GetIsOffstageEffective(); ui.isOffStageToggle.onValueChanged.AddListener(OnOffstageToggleChanged); // Only let user toggle on/off stage if this is an unparented actor. ui.isOffStageToggle.interactable = !actor.IsParentedToAnotherActor(); // ui.isOffStageToggle.gameObject.SetActive(editMain.ShowAdvanced()); }