Reputation: 1128
I am creating a small application which is instantiated by a client. In my application I have 2 classes MessageQueueSingleton.cs and DataObject.cs
MessageQueueSingleton is a singleton class which contains a static Dictionary of the objects of DataObject class. MessageQueueSingleton has some methods which will manipulate the attributes of the DataObject class according to the instructions from the client.
My problem is I also need a Unity GUI which can call few methods of MessageQueueSingleton, i.e. if I press a button on UI, a method will be called from the MessageQueueSingleton.
I am new to unity programming and I tried to look the examples which shows how to connect scripts to buttons, but I still can't see my method in the "Inspector" onClick() section. I am using Unity 5.5.1f1
Any small example or link describing the process to do it would be helpful.
Upvotes: 1
Views: 1376
Reputation: 5108
On your GameObject with a Button component you can add a script component with the following code to set up a listener and method for that button:
void Start() {
var button = GameObject.Find("GameObjectWithMyButton").GetComponent<Button>();
button.onClick.AddListener(MyMethod);
}
void MyMethod() {
// Do something when button is clicked.
}
And if you want to drag & select it in the inspector, make sure the methods you want to select in the inspector button onclick GUI thing are public methods! To make the public methods of a script shows up in the Inspector Button Onclick GUI you place the script on a GameObject then drag that object to the button onclick GUI and select them from the dropdown. They won't show unless they're public methods. (public void DoSomething() { }
)
Upvotes: 1