Button 检测画布中按下的UI按钮?
我的UI上有10个按钮,我要检查哪一个被触动了。我使用了以下逻辑,工作正常,但由于某种原因,我现在出现了这个错误:Button 检测画布中按下的UI按钮?,button,canvas,unity3d,unity3d-gui,Button,Canvas,Unity3d,Unity3d Gui,我的UI上有10个按钮,我要检查哪一个被触动了。我使用了以下逻辑,工作正常,但由于某种原因,我现在出现了这个错误: NullReferenceException: Object reference not set to an instance of an object DetectButton.Start () (at Assets/Scripts/DetectButton.cs:14) 你知道会发生什么吗?这是我的代码(附在画布上),我使用的是Unity版本5.1.0f3。如果您需要任何
NullReferenceException: Object reference not set to an instance of an object
DetectButton.Start () (at Assets/Scripts/DetectButton.cs:14)
你知道会发生什么吗?这是我的代码(附在画布上),我使用的是Unity版本5.1.0f3。如果您需要任何其他信息,我将很乐意提供,提前感谢
void Start()
{
this.GetComponent<Button>().onClick.AddListener(() =>
{
if (this.name == "btnJogadores2")
{
print ("2 jogadores");
jogadores = 2;
}
//QuantidadeJogadores(this.name);
//QuantidadePartidas(this.name);
});
}
void Start()
{
this.GetComponent().onClick.AddListener(()=>
{
如果(this.name==“btnJogadores2”)
{
印刷品(“2件Jogadors”);
慢跑爱好者=2;
}
//QuantidadeJogadores(此名称);
//QuantidadePartidas(此名称);
});
}
代码未经测试,但应该可以让您开始获取所有按钮
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);
});
}
}
void Start(){
var buttons=this.GetComponents();
foreach(按钮中的var按钮){
button.onClick.AddListener(()=>{
如果(this.name==“btnJogadores2”){
印刷品(“2件Jogadors”);
慢跑爱好者=2;
}
//QuantidadeJogadores(此名称);
//QuantidadePartidas(此名称);
});
}
}
实际上,很难区分按钮。
更实用的方法是制作10个游戏对象(画布的子对象),并将脚本附加到每个对象上。代码未经测试,但应该可以让您开始获取所有按钮
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);
});
}
}
void Start(){
var buttons=this.GetComponents();
foreach(按钮中的var按钮){
button.onClick.AddListener(()=>{
如果(this.name==“btnJogadores2”){
印刷品(“2件Jogadors”);
慢跑爱好者=2;
}
//QuantidadeJogadores(此名称);
//QuantidadePartidas(此名称);
});
}
}
实际上,很难区分按钮。
更实用的方法是制作10个游戏对象(画布的子对象)并将脚本附加到每个对象上。您不必像现在这样做 一个简单而好的做法是为画布中的每个按钮创建10个单独的游戏对象。然后为其中的所有按钮创建一个包含10个单独函数的脚本。将该脚本附加到画布上。然后在GameObject按钮上选择所需函数上的脚本。下面的示例
void Start() { }
void Update() { }
public void button1()
{
Debug.Log("Button3");
}
public void button2()
{
Debug.Log("Button1");
}
public void button3()
{
Debug.Log("Button3");
}
注意:按钮1、按钮2和按钮3是3个单独按钮的功能
然后在你的统一检查员里面:
在此之后,运行场景,您的按钮将正确调用指定的方法。您不必按现在的方式执行所有这些操作 一个简单而好的做法是为画布中的每个按钮创建10个单独的游戏对象。然后为其中的所有按钮创建一个包含10个单独函数的脚本。将该脚本附加到画布上。然后在GameObject按钮上选择所需函数上的脚本。下面的示例
void Start() { }
void Update() { }
public void button1()
{
Debug.Log("Button3");
}
public void button2()
{
Debug.Log("Button1");
}
public void button3()
{
Debug.Log("Button3");
}
注意:按钮1、按钮2和按钮3是3个单独按钮的功能
然后在你的统一检查员里面:
运行场景后,您的按钮将正确调用指定的方法。您好,先生!我的画布上有10个按钮:\hello sir!我的画布上有10个按钮:\Thank dude!这很有帮助,谢谢你,伙计!这很有帮助。