C# 统一的按钮行为

C# 统一的按钮行为,c#,unity3d,unity5,C#,Unity3d,Unity5,我正在创建一个由客户端实例化的小应用程序。在我的应用程序中,我有两个类MessageQueueSingleton.cs和DataObject.cs MessageQueueSingleton是一个singleton类,它包含DataObject类对象的静态字典。MessageQueueSingleton有一些方法可以根据客户机的指示操作DataObject类的属性 我的问题是我还需要一个Unity GUI,它可以调用MessageQueueSingleton的几个方法,也就是说,如果我按下UI上

我正在创建一个由客户端实例化的小应用程序。在我的应用程序中,我有两个类MessageQueueSingleton.cs和DataObject.cs

MessageQueueSingleton是一个singleton类,它包含DataObject类对象的静态字典。MessageQueueSingleton有一些方法可以根据客户机的指示操作DataObject类的属性

我的问题是我还需要一个Unity GUI,它可以调用MessageQueueSingleton的几个方法,也就是说,如果我按下UI上的按钮,就会从MessageQueueSingleton调用一个方法

我是unity编程的新手,我试着查看一些示例,这些示例演示了如何将脚本连接到按钮,但在“Inspector”onClick()部分中仍然看不到我的方法。我使用的是Unity 5.5.1f1

任何一个小的例子或链接都会很有帮助


谢谢。

在带有按钮组件的游戏对象上,您可以使用以下代码添加脚本组件,以设置该按钮的侦听器和方法:

void Start() {
    var button = GameObject.Find("GameObjectWithMyButton").GetComponent<Button>();
    button.onClick.AddListener(MyMethod);
}

void MyMethod() {
    // Do something when button is clicked.
}
void Start(){
var button=GameObject.Find(“GameObjectWithMyButton”).GetComponent();
button.onClick.AddListener(MyMethod);
}
void MyMethod(){
//单击按钮时执行某些操作。
}

如果您想在inspector中拖动并选择它,请确保要在inspector按钮onclick GUI中选择的方法是公共方法!要使脚本的公共方法显示在Inspector Button Onclick GUI中,请将脚本放置在游戏对象上,然后将该对象拖动到Button Onclick GUI并从下拉列表中选择它们。除非它们是公共方法,否则不会显示。(
public void DoSomething(){}

谢谢你的回答。但是,我的方法是公开的,但仍然无法在inspector中看到它们。我附上了这个问题的截图。没有看到更多,我猜这可能是一个静态方法的问题?您能否尝试添加一个非静态的方法,看看它是否显示出来?只是一个普通的好的ol'public方法。实际上,这个方法不是静态的,但是这个类是单例的,这会干扰吗<代码>public void getProduct(){//从get product button Debug.Log(“KKLOG:getProduct()”)调用;}