【问题标题】:GUI.Button how do I activate the on hover effects with code?GUI.Button 如何使用代码激活悬停效果?
【发布时间】:2015-07-27 04:14:00
【问题描述】:

我正在处理我的菜单,这里有几个玩家可以选择的类(表示为 GUI 按钮)。我已经让它们在悬停时突出显示,并且在选择一个类时它也会注册。

我不知道如何解决的问题是,我希望选定的类在单击后保持“悬停”状态,以便它保持突出显示并且玩家知道他已经选择了该类。

if (GUI.Button (new Rect (Screen.width / 2 - 625, 500, 200, 30), "The Cunning", buttonStyle)) 
{
    classValgt = "1";

    // Some code here that makes the button appear as if hovered with the effects I added via my GUI style
}

【问题讨论】:

    标签: c# user-interface unity3d


    【解决方案1】:

    您只能使用带有 GUI 皮肤或 GUI 样式的悬停效果,请阅读以下文档。

    http://docs.unity3d.com/Manual/class-GUIStyle.html

    http://docs.unity3d.com/Manual/class-GUISkin.html

    在 Unity 的项目面板中创建并选择 GUISkin ,并在脚本中公开 GUIStyle 类型变量并将 GUISkin 传递给它,代码如下例所示:-

     public class ExampleClass : MonoBehaviour 
        {
            public GUIStyle style;
            void OnGUI() 
            {
                GUI.skin.label = style;
                GUILayout.Label("This is a label.");
                Debug.Log("" + GUI.skin.button.hover.textColor);
    
            }
        }
    

    【讨论】:

      【解决方案2】:

      我会通过为按钮代表的每个对象使用两个 GUIStyles 和一个布尔“选择”来解决这个问题。在绘制按钮之前测试 bool 的状态并将正确的样式(选择/未选择)传递给它。

      如果您可以使用GUI.Toggle 代替按钮,那就更好了(您可以将样式更改为类似于简单按钮而不是切换按钮)。它更加优雅,因为它自动控制选中/未选中状态,并且只使用一种样式(未选中保持状态,选中时保持 OnHold 状态)。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2017-09-07
        • 2020-09-01
        • 2022-06-16
        • 2017-09-07
        • 2018-02-06
        • 2018-12-22
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多