如何获得游戏对象 - 触发了UI.Button点击功能

时间:2015-07-15 13:16:21

标签: unity3d

Unity中的

我试图禁用ui.button-一旦点击。有一个按钮列表 - 其中 - 被点击的按钮将被禁用。但我不确定,是否有可能让事件触发游戏对象。

Unity Editor -

enter image description here

代码:

    // called from ui.button clicks
    public void callThisMethod(string param) {

        // how to get the clicked button gameobject here 

    }

3 个答案:

答案 0 :(得分:2)

只需添加另一个事件即可返回按钮

enter image description here

public Button ButtonPressed(Button ThisButton)
{
     return ThisButton;
}

答案 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设置一个公共字段并获得名称而不传递任何参数。