如何让 UI 按钮在 Unity 3D 中保持按下状态
How to Get UI button to Stay in a Pressed State in Unity 3D
在 Unity 3D 中,当您 select 一个按钮时,它会保持按下状态,直到您在按钮外部单击并基本上恢复到其正常颜色。问题是,当我在按钮或场景外单击时,我希望按钮保持按下状态(颜色方面)。有谁知道如何按住按钮或单击按钮后 "selected"?
您可以使用 Unity UI Toggle(正如 Muhammad 所说)。更改设计以删除复选标记并使其看起来像一个按钮。
使用此组件,您可以使用状态 'isOn' 并在选择时更改颜色。
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;
}
}
在 Unity 3D 中,当您 select 一个按钮时,它会保持按下状态,直到您在按钮外部单击并基本上恢复到其正常颜色。问题是,当我在按钮或场景外单击时,我希望按钮保持按下状态(颜色方面)。有谁知道如何按住按钮或单击按钮后 "selected"?
您可以使用 Unity UI Toggle(正如 Muhammad 所说)。更改设计以删除复选标记并使其看起来像一个按钮。 使用此组件,您可以使用状态 'isOn' 并在选择时更改颜色。
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;
}
}