我试图禁用ui.button-一旦点击。有一个按钮列表 - 其中 - 被点击的按钮将被禁用。但我不确定,是否有可能让事件触发游戏对象。
Unity Editor -
代码:
// called from ui.button clicks
public void callThisMethod(string param) {
// how to get the clicked button gameobject here
}
答案 0 :(得分:2)
答案 1 :(得分:1)
您可以在代码中添加以下内容:
public Button yourButton;
public void yourButtonClicked(){
yourButton.interactable = false;
}
将您的按钮分配给检查器中的Button对象。然后在上面的图像中显示“On Click()”,选择添加上述代码的脚本,然后选择“yourButtonClicked()”函数。这将在单击按钮后禁用该按钮。
要获取单击的按钮游戏对象,您可以使用:EventSystem.current.currentSelectedGameObject
答案 2 :(得分:0)
在将事件侦听器添加到UI按钮时,将按钮的gameObject
作为参数传递。
希望能对您有所帮助:
GameObject myButtonGameObject = myButton.gameObject;
myButton.onClick.AddListener(() => {LogName(myButtonGameObject); });
public void LogName(GameObject buttonGameObject = null){
Debug.Log(myButtonGameObject);
}
注意:当需要动态显示所单击按钮的名称时,给定方法非常有用,但是如果您知道确切的按钮,则可以为myButton
设置一个公共字段并获得名称而不传递任何参数。