【问题标题】:How to Get UI button to Stay in a Pressed State in Unity 3D如何让 UI 按钮在 Unity 3D 中保持按下状态
【发布时间】:2020-03-11 18:33:43
【问题描述】:

在 Unity 3D 中,当您选择一个按钮时,它将保持按下状态,直到您在按钮外部单击并基本上恢复其正常颜色。问题是,当我在按钮或场景之外单击时,我希望按钮保持按下状态(颜色方面)。有谁知道点击按钮后如何保持按下或“选中”状态?

【问题讨论】:

  • 使用统一用户界面切换

标签: unity3d button highlight


【解决方案1】:

您可以使用 Unity UI Toggle(如 Muhammad 所说)。更改设计以删除复选标记并使其看起来像一个按钮。 使用此组件,您可以使用状态“isOn”,例如在选择时更改颜色。

【讨论】:

  • 我曾想过使用 UI Toggle,但希望通过 c# 编码可能有其他选项。我会试试 UI 切换。
  • 您可以轻松地编写一些代码来更改按钮的行为,但我不确定这是否比使用已经为此设计的 Toggle 更好的解决方案! ;)
  • 好的。感谢cmets。似乎大多数人都推荐使用 Toggle。
【解决方案2】:

public class Button_Stay_Pressed : MonoBehaviour
{
    private Button btn;

    [SerializeField]
    private Sprite normal_sprite;
    [SerializeField]
    private Sprite pressed_sprite;

    void Awake()
    {
        btn = gameObject.GetComponent<Button>();
        btn.image.sprite = normal_sprite;
        btn.onClick.AddListener(TaskOnClick);
    }

    void TaskOnClick()
    {
        btn.image.sprite = pressed_sprite;
    }
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-07-27
    • 2019-10-04
    • 2014-09-04
    • 2018-04-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多