C# 通过代码实现Unity UI按钮状态转换
我愿意通过C#中的代码更改按钮状态(按下、停用、突出显示)。就像某些动作一样,我想将按钮状态切换为非活动状态。我该怎么做 我试图设置按钮状态,但没有找到任何属性。 我试图通过此设置禁用状态C# 通过代码实现Unity UI按钮状态转换,c#,unity3d,unity5,C#,Unity3d,Unity5,我愿意通过C#中的代码更改按钮状态(按下、停用、突出显示)。就像某些动作一样,我想将按钮状态切换为非活动状态。我该怎么做 我试图设置按钮状态,但没有找到任何属性。 我试图通过此设置禁用状态 public Sprite activeBtnState; public Sprite deactiveBtnState;//button disable sprite that will be applied public Button BtnToChange
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;
}
}
错误11无法修改的返回值
“UnityEngine.UI.Selectable.spriteState”,因为它不是变量
此外,是否有任何内置功能(函数)可用于自动更改我的按钮状态,并且我不编写代码来管理精灵?您可以使用
按钮。可交互的来更改按钮的状态
禁用:
BtnToChange.interactable = false;
启用:
BtnToChange.interactable = true;
答案是:
//创建精灵状态的实例(包括高亮显示、按下和禁用的精灵)。
//在编辑模式下指定精灵
public SpriteState sprState=new SpriteState();//您可以使用BtnToChange.isInterractable()=false来禁用按钮如果您想更改按钮的可交互性,但不允许您将状态从正常更改为高亮显示。例如,您添加了一条注释“嘿,马贝克,你明白这个问题了吗?我愿意改变按钮的状态,我不想激活它。”“。我猜他/她没有回答您的问题。如果Mabecr的解决方案符合您的需要,请将其标记为正确答案。答案不一样,请仔细查看。BtnToChange.spriteState=sprState
。我只是重复使用了您的代码,以便您只需将其复制粘贴到文件中即可。”。
//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;
}
}