【问题标题】:How to change disabled color in MRTK Interactable buttons correctly?如何正确更改 MRTK 可交互按钮中的禁用颜色?
【发布时间】:2021-06-04 09:52:12
【问题描述】:

我正在开发一个带有用于 hololens2 的 unity3D 和 MRTK 包的应用程序,并且我正在尝试在禁用切换开关时更改它的颜色。

切换器上有一个带有许多配置文件的可交互脚本,其中一个有两个用于选定状态的主题,即“InteractableActivateTheme”和“可交互颜色儿童主题”。 当使用主题字段“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;
                }
            }

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

【问题讨论】:

    标签: unity3d hololens mrtk


    【解决方案1】:

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

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

    在 MRTK2.7 和 Unity 2019.4.22 中验证。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-04-09
      相关资源
      最近更新 更多