Gatsua
1
I have a gameobject with an toggle which I want to execute a function on change:
levelItem.GetComponent<Toggle>().onValueChanged.AddListener(SetSelectedLevel(levelList*.Number));*
public void SetSelectedLevel(int index) {
-
selectedLevel = index;*
- }*
the levelList*.Number is just an int.*
I am getting this error on the onValueChange:
> error CS1502: The best overloaded
> method match for
> UnityEngine.Events.UnityEvent.AddListener(UnityEngine.Events.UnityAction)'*_ _*> has some invalid arguments*_ _*aswell as this:*_ _*> error CS1503: Argument #1’ cannot
> convert void' expression to type*_ _*> UnityEngine.Events.UnityAction’
Gatsua
2
This is how the syntax should look like:
levelItem.GetComponent<Toggle>().onValueChanged.AddListener(delegate {
SetSelectedLevel(levelList[currentItem].Number);
});
notice the delegate { ... } which has been added inside the AddListener().