【发布时间】:2021-10-19 03:17:57
【问题描述】:
我有问题。每次我尝试使用 Button.Interactable 制作一个不可交互的按钮时 但由于某种原因,我不明白它不起作用。我的代码很简单:
public Button boton1, boton2;
bool boton1Bool, boton2Bool;
void Start()
{
boton1 = GetComponent<Button>();
boton2 = GetComponent<Button>();
}
void Update()
{
if (boton1Bool == true) {
Debug.Log("BOTON 1");
boton2.interactable = false;
}
else if (boton1Bool == false) {
boton2.interactable = true;
}
if (boton2Bool == true) {
Debug.Log("BOTON 2");
boton1.interactable = false;
}
else if (boton2Bool == false) {
boton1.interactable = true;
}
}
public void Boton1Down(){
boton1Bool = true;
}
public void Boton1Up()
{
boton1Bool = false;
}
public void Boton2Down(){
boton2Bool = true;
}
public void Boton2Up()
{
boton2Bool = false;
}
这个小程序所做的是将 Button.Intaractable = false, 应用于按下另一个按钮。简单的。 我还留下了按钮的屏幕截图及其各自的脚本:
现在我有以下代码,但它仍然没有禁用我没有按下的按钮:
´´´
public Button boton1, boton2;
void Update()
{
}
public void Boton1Down(){
boton2.GetComponent<Button>().interactable = false;
}
public void Boton1Up()
{
boton2.GetComponent<Button>().interactable = true;
}
public void Boton2Down(){
boton1.GetComponent<Button>().interactable = false;
}
public void Boton2Up()
{
boton1.GetComponent<Button>().interactable = true;
}
´´´
【问题讨论】:
-
你能告诉我你为什么使用
Update()方法来启用/禁用按钮吗?您只需在ButtonDown()和ButtonUp()方法中启用和禁用它们。另外,在Start()方法中初始化button1和button2也有问题。 -
我发布的代码在您按下鼠标时禁用了另一个按钮,当您释放它时,再次启用该按钮。这就是你想要的吗?
-
是的,我需要那个。
-
当你点击一个按钮时,你是如何发现另一个按钮被禁用的?
-
在检查器上分配相应的按钮,确保它,但它仍然不能正常工作。
标签: c# unity3d button interaction