¿Cómo agregar un oyente onClick con una variable a un botón?
– UnityAssets3Free
buenas , soy Juan y en esta ocasion os traigo
esta unity pregunta
Estoy tratando de agregar una llamada de función a un botón a través del código. Pude hacer esto fácilmente para mi menú desplegable, pero por alguna razón no funciona para mis botones. Aquí está mi código:
btn.GetComponent<Button>().onClick.AddListener(onSpriteSheetChange(spriteSheet.Grass));
Este código me da el error: no se puede convertir de ‘void’ a ‘UnityEngine.Events.UnityAction’ Assembly-CSharp
3 respuestas 3
Pruebe el siguiente fragmento:
btn.GetComponent<Button>().onClick.AddListener(() => onSpriteSheetChange(spriteSheet.Grass));
Addlistener realiza una acción de Unity, por lo que si coloca un método de anulación regular, tendrá este problema. Como se dijo anteriormente, puede poner su llamada a una función anónima usando la expresión lambda:
()=> method(attr);
// Or multiple lines using
()=>
//code
onSpriteSheetChange no devolverá lo que desea que necesite pasar
() => onSpriteSheetChange(spriteSheet.Grass)
como un argumento para AddListener para que sepa qué evento y hoja de sprites.
Para ver:
https://docs.unity3d.com/ScriptReference/Events.UnityEvent.AddListener.html
nota: si aun no se resuelve tu pregunta por favor dejar un comentario y pronto lo podremos de nuevo , muchas gracias
por hoy,hasta la proxima