unity UI 通过代码实现按钮状态转换
Unity UI Button State Transition through code
我愿意通过 C# 中的代码更改按钮状态(按下、停用、突出显示)。就像某些动作一样,我想将按钮状态切换为停用状态。我该怎么做?
我试图设置按钮状态,但我没有找到任何 属性 接受 spriteState。
我试图通过这个设置禁用状态
public Sprite activeBtnState;
public Sprite deactiveBtnState;//button disable sprite that will be applied
public Button BtnToChange;//button whoes state require to change
public void NavigationTask() {
if (isBtnActive)
{
BtnToChange.interactable = false;
BtnToChange.spriteState.disabledSprite = deactiveBtnState;
}
else
{
BtnToChange.interactable = true;
}
}
Error 11 Cannot modify the return value of
'UnityEngine.UI.Selectable.spriteState' because it is not a variable
此外,是否有任何内置功能(功能)可用,可以自动更改我的按钮状态,我不编写代码来管理精灵?
您可以使用 Button.interactable
更改 Button
状态。
禁用:
BtnToChange.interactable = false;
启用:
BtnToChange.interactable = true;
答案在documentation:
//Creates an instance of a sprite state (This includes the highlighted, pressed and disabled sprite.
// Assign the sprites in edit mode
public SpriteState sprState = new SpriteState(); // <- IMPORTANT DECLARATION
public Button BtnToChange;
// You can even change the transition type
public Selectable.Transition transition ;
public void NavigationTask()
{
if (isBtnActive)
{
BtnToChange.interactable = false;
BtnToChange.spriteState = sprState ; // <- IMPORTANT LINE
}
else
{
BtnToChange.interactable = true;
}
}
我愿意通过 C# 中的代码更改按钮状态(按下、停用、突出显示)。就像某些动作一样,我想将按钮状态切换为停用状态。我该怎么做?
我试图设置按钮状态,但我没有找到任何 属性 接受 spriteState。 我试图通过这个设置禁用状态
public Sprite activeBtnState;
public Sprite deactiveBtnState;//button disable sprite that will be applied
public Button BtnToChange;//button whoes state require to change
public void NavigationTask() {
if (isBtnActive)
{
BtnToChange.interactable = false;
BtnToChange.spriteState.disabledSprite = deactiveBtnState;
}
else
{
BtnToChange.interactable = true;
}
}
Error 11 Cannot modify the return value of 'UnityEngine.UI.Selectable.spriteState' because it is not a variable
此外,是否有任何内置功能(功能)可用,可以自动更改我的按钮状态,我不编写代码来管理精灵?
您可以使用 Button.interactable
更改 Button
状态。
禁用:
BtnToChange.interactable = false;
启用:
BtnToChange.interactable = true;
答案在documentation:
//Creates an instance of a sprite state (This includes the highlighted, pressed and disabled sprite.
// Assign the sprites in edit mode
public SpriteState sprState = new SpriteState(); // <- IMPORTANT DECLARATION
public Button BtnToChange;
// You can even change the transition type
public Selectable.Transition transition ;
public void NavigationTask()
{
if (isBtnActive)
{
BtnToChange.interactable = false;
BtnToChange.spriteState = sprState ; // <- IMPORTANT LINE
}
else
{
BtnToChange.interactable = true;
}
}