Do I need to unregister events if an instance is destroyed?

Do I need to unregister my event even if the instance is destroyed? Will it get cleaned up with the object being destroyed or will there be a memory leak?

void Awake()
{
    button.OnClick += ButtonClicked;
}

void OnDestroy()
{
    // Is this necessary?
    button.OnClick -= ButtonClicked;
}

void ButtonClicked()
{
    // Do stuff
}

Yes you should unsubscribe from any events or delegates you subscribe to. Adverse effects may come from not cleaning up after yourself properly and it is good practice to keep track of these things.