如何正确更改 MRTK Interactable 按钮中的禁用颜色?

How to change disabled color in MRTK Interactable buttons correctly?

我正在使用 unity3D 和 Hololens2 的 MRTK 包的应用程序,我试图在禁用时更改开关的颜色。

切换器上有一个带有许多配置文件的 Interactable 脚本,其中之一有两个用于所选状态的主题,即“InteractableActivateTheme”和“Interactable color children theme”。 当使用主题字段“Pressed”和“Default”选择时,我成功地使用了后者来更改切换器的颜色,但在任何情况下我都无法使用“Disabled”字段。

Screenshot of the profile I am talking about

我通过代码将状态设置为禁用来禁用切换:

PlaceToggle.SetState(InteractableStates.InteractableStateEnum.Disabled, true);
PlaceToggle.enabled = true;

切换禁用自身,但颜色保持红色已在“InteractableColorChildrenTheme”的“默认”状态属性中设置。 我也试过像这样通过代码改变颜色,但我没有结果:

 var activeThemes = PlaceToggle.ActiveThemes;
            foreach (InteractableThemeBase itb in activeThemes)
            {
                if (itb is InteractableColorChildrenTheme)
                {
                    Debug.Log(" changing state property");

                    var property = itb.StateProperties;
                    oldColor = itb.StateProperties[0].Values[0].Color;
                    itb.StateProperties[0].Values[0].Color = Color.gray;
                }
            }

关于我如何理解正在发生的事情以及为什么它不起作用的任何想法? 谢谢大家

请尝试使用以下代码禁用您的按钮:

    buttonInteractable = this.GetComponent<Interactable>();
    buttonInteractable.IsEnabled = false;

已在 MRTK2.7 和 Unity 2019.4.22 中验证。