MRTK V2.1 - Toggle 不会在第一次调用时将维度设置为 1

MRTK V2.1 - Toggle does not set dimension to 1 at first call

我已更新到 MRTK v2.1,现在我正在为 的切换而苦苦挣扎。不要误会我的意思,链接 post 中的问题已解决!但现在我遇到了不同的问题。

会发生什么:
我的场景中有一个设置面板,组件 DebugContent.cs 附加到它。每次我打开它时,OnEnable 都会根据 SetToggleState() 的第三个参数触发并设置我的切换状态。因此,假设第三个参数始终为真 → DiagnosticsSystem.ShowProfilerdebugProvider.enabledspeechInputHandler.enabled 为真!

在 MRTK v2.0 上我没有遇到任何问题, 但现在在 v2.1 上,我的切换不是第一次切换。 我必须再次打开我的面板以便切换开关!

//OnEnable in DebugContent.cs
private void OnEnable()
{
    // Set Profiler, Log viewer, Speech Input
    Utils.SetToggleState(profilerTgl, profilerTxt, DiagnosticsSystem.ShowProfiler);
    Utils.SetToggleState(logViewerTgl, logViewTxt, debugProvider.enabled);
    Utils.SetToggleState(speechInputTgl, speechInputTxt, speechInputHandler.enabled);
}

//SetToggleState in Utils.cs
public static void SetToggleState(Interactable comp, TextMesh tm, bool isOn)
{
    Debug.Log("Util >> SetToggleState >> Set toggle → " + comp.gameObject.name +" to → " + isOn + " >> Comp is enable → " + comp.enabled + " and has dimension → " + comp.CurrentDimension);
    if (isOn)
    {
        comp.CurrentDimension = 1;
        tm.text = "On";
    }
    else
    {
        comp.CurrentDimension = 0;
        tm.text = "Off";
    }
    Debug.Log("Util >> SetToggleState >> Toggle set to dimension → " + comp.CurrentDimension);
}

更多信息:
奇怪的是,我第一次打开我的面板时,我的切换文本显示 On 但我的切换没有切换。仅当我第二次打开我的面板时切换切换:
我的Debug.Log的输出也很有意思,因为当前维度每次都是0:
第一次:
Util >> SetToggleState >> Set toggle → Debug_Tgl to → True >> Comp is enabled → True and has dimension → 0
Util >> SetToggleState >> Toggle set to dimension → 1
第二次:
Util >> SetToggleState >> Set toggle → Debug_Tgl to → True >> Comp is enabled → True and has dimension → 0
Util >> SetToggleState >> Toggle set to dimension → 1

我正在使用 CurrentDimension,因为 SetDimensionIndex 现已弃用。
我在 github.

上创建了一个 bug report

请参阅 github 页面上的回复。作为解决方法,在 OnEnableStart. DebugContent 中调用 Utils.SetToggleState OnEnable 在 Interactable.Awake 之前被调用,这使得问题