void Update()
{
AdjustAngleBasedOnScreenPos();
// Update selection colours
for (int i = 0; i < m_MenuObjects.Count; i++)
{
if (!m_MenuObjects[i].gameObject.activeSelf)
{
continue;
}
}
if (m_State == State.Activating || m_State == State.Active)
{
}
if (m_State == State.Activating)
{
m_RadLayout.UpdateFDistance(Mathf.Lerp(m_RadLayout.fDistance, m_TargetRadius, Time.deltaTime * m_Smoothing));
float norm = m_RadLayout.fDistance / m_Radius;
SetAllObjectFades(Mathf.Pow(norm, 5));
if (Mathf.Abs(m_RadLayout.fDistance - m_TargetRadius) < 2)
{
m_State = State.Active;
}
}
else if (m_State == State.Active)
{
if (Vector3.Distance(Input.mousePosition, transform.position) < m_DeadZone)
{
m_MenuText.text = m_MenuName;
m_OptionSelected = false;
}
else
{
m_SelectedIndex = FindClosestButtonIndex();
m_OptionSelected = true;
}
// if (Input.GetMouseButtonUp(1))
// DeactivateMenu();
}
else if (m_State == State.Deactivating)
{
float norm = (m_Radius - m_RadLayout.fDistance) / m_Radius;
norm = 1 - norm;
SetAllObjectFades(Mathf.Pow(norm, 5));
m_RadLayout.UpdateFDistance(Mathf.Lerp(m_RadLayout.fDistance, m_TargetRadius, Time.deltaTime * m_Smoothing));
if (Mathf.Abs(m_RadLayout.fDistance - m_TargetRadius) < 2)
{
m_State = State.Deactivated;
for (int i = 0; i < m_MenuObjects.Count; i++)
{
m_MenuObjects[i].gameObject.SetActive(false);
}
if (m_HideInactive)
{
transform.position = Vector3.right * Screen.width * 3;
}
}
}
}