我在我的菜单上工作,这里有一些玩家可以选择的类(表示为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
}
答案 0 :(得分:0)
您只能使用具有GUI外观或GUI样式的悬停效果,请阅读以下文档。
http://docs.unity3d.com/Manual/class-GUIStyle.html
http://docs.unity3d.com/Manual/class-GUISkin.html
在项目面板中在Unity中创建并选择GUISkin,并在脚本中将公共GUIStyle类型设置为Variable,并在其上传递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);
}
}
答案 1 :(得分:0)
我会通过使用两个GUIStyles和一个bool"选择"来解决这个问题。为您的按钮代表的每个对象。在绘制按钮之前测试bool的状态,并将正确的样式(选中/未选中)传递给它。
如果您可以使用GUI.Toggle而不是按钮(您可以将样式更改为类似简单按钮而不是切换),那就更好了。它更优雅,因为它自动控制选定/未选择状态并仅使用一种样式(保持状态为未选择状态和OnHold状态为选定状态。)