Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/288.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 通过代码实现Unity UI按钮状态转换_C#_Unity3d_Unity5 - Fatal编程技术网

C# 通过代码实现Unity UI按钮状态转换

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

我愿意通过C#中的代码更改按钮状态(按下、停用、突出显示)。就像某些动作一样,我想将按钮状态切换为非活动状态。我该怎么做

我试图设置按钮状态,但没有找到任何属性。 我试图通过此设置禁用状态

        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;
     }
 }