private void Dispose (bool disposing)
{
// do this first so that no more events will fire
OnButtonStateChange = null;
if (disposing)
{
// manually dispose of any directly referenced resources
m_Listener.OnButtonStateChange -= m_AgentButtonListener;
}
m_Listener = null;
}