示例#1
0
    private void UpdateProfiles(
        EyeXEngineStateValue <string[]> profiles,
        EyeXEngineStateValue <string> currentProfile)
    {
        if (profiles.IsValid && currentProfile.IsValid)
        {
            // Draw the title.
            GuiHelpers.DrawText("Click a profile button to activate it.", new Vector2(10, 60), 18, GuiHelpers.Black);

            for (int index = 0; index < profiles.Value.Length; index++)
            {
                // Get the profile name.
                var profileName = profiles.Value[index];

                // Should we disable the GUI?
                var isCurrentProfile = profileName == currentProfile.Value;
                if (isCurrentProfile)
                {
                    GUI.enabled = false;
                }

                // Draw the button.
                var buttonX    = buttonMargin;
                var buttonY    = 100 + (index * (buttonHeight + buttonMargin));
                var buttonRect = new Rect(buttonX, buttonY, buttonWidth, buttonHeight);
                if (GUI.Button(buttonRect, profileName))
                {
                    // Set the current user profile.
                    _host.SetCurrentProfile(profileName);
                }

                // Re-enable the GUI.
                GUI.enabled = true;
            }
        }
        else
        {
            // No valid profile name.
            GuiHelpers.DrawText("Error: Could not retrieve profile names.", new Vector2(10, 60), 18, GuiHelpers.Red);
        }
    }