我的UI上有10个按钮,我要检查哪个被触摸了。我使用以下逻辑,它工作正常,但现在我出于某种原因收到此错误:
void Start()
{
this.GetComponent<Button>().onClick.AddListener(() =>
{
if (this.name == "btnJogadores2")
{
print ("2 jogadores");
jogadores = 2;
}
//QuantidadeJogadores(this.name);
//QuantidadePartidas(this.name);
});
}
任何想法可能会发生什么?这是我的代码(附在画布上),我使用的是Unity版本5.1.0f3。如果您需要任何其他信息,我很乐意提供,提前感谢
mail {
host = "smtp.gmail.com"
port = 465
username = "adityasoni051293@gmail.com"
password = "aditya051293"
props = ["mail.smtp.auth":"true",
"mail.smtp.socketFactory.port":"465",
"mail.smtp.socketFactory.class":"javax.net.ssl.SSLSocketFactory",
"mail.smtp.socketFactory.fallback":"false"]
}
答案 0 :(得分:4)
你不必按照自己的方式做到这一切。
更简单,更好的做法是为画布中的每个按钮创建10个单独的GameObject。然后为其中的所有按钮创建一个包含10个单独函数的脚本。将该脚本附加到画布上。然后在按钮GameObject上选择所需功能的脚本。下面的示例
void Start() { }
void Update() { }
public void button1()
{
Debug.Log("Button3");
}
public void button2()
{
Debug.Log("Button1");
}
public void button3()
{
Debug.Log("Button3");
}
注意: button1,button2和button3是3个单独按钮的功能
然后在你的团结检查员里面:
完成此操作后,您的场景和按钮将正确调用指定的方法。
答案 1 :(得分:1)
代码未经过测试,但它应该让您开始获取所有按钮。
void Start() {
var buttons = this.GetComponents<Button> ();
foreach(var button in buttons) {
button.onClick.AddListener(() = > {
if (this.name == "btnJogadores2") {
print("2 jogadores");
jogadores = 2;
}
//QuantidadeJogadores(this.name);
//QuantidadePartidas(this.name);
});
}
}
实际上很难区分按钮。 更实际的方法是制作10个GameObjects(画布之子)并将你的脚本附加到每个人身上。