no work

no work
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class contlos : MonoBehaviour
{
public float movementSpeed;
[SerializeField]
Button l;
[SerializeField]
Button r;
[SerializeField]
Button g;
[SerializeField]
Button b;
// Start is called before the first frame update
void Start()
{

}

// Update is called once per frame
void Update()
{
b.onClick.AddListener(Fgh);
}
void FixedUpdate(){

}
void OnMouseDown(){

}
public void Fgh(){

}
}

AddListener should be in Start, not Update:

void Start()
{
  b.onClick.AddListener(delegate { Fgh() });
}
void Fgh()
{
  Debug.Log("clicked");
}