void Awake ()
{
// store singleton
if (use != null) GameObject.Destroy(use.gameObject);
use = this;
// listen for its own messages
MessengerAM.Listen(MessengerAM.listenTypeInput, this);
// cache transforms
m_transform = transform;
m_mainTransform = Camera.main.transform;
// set initial positions
desiredPosition = m_transform.position;
m_desiredCameraDistance = m_mainTransform.localPosition.magnitude;
m_previousPosition = m_transform.position;
// add some default idle time to prevent sending message on first frame
idleTime = 1f;
}