void MoveFocusButton(int offset)
    {
        int count = m_allJoystickUI.Count;

        if (count == 0)
        {
            return;
        }
        int dir = 1;

        if (offset < 0)
        {
            dir = -1;
        }

        //多循环一次
        for (int i = 0; i < count + 1; i++)
        {
            int index            = (i * dir + m_currentUIIndex + count + count) % count;
            JoystickAutoMapUI ui = m_allJoystickUI[index];
            if (ui.MoveFocusButton(offset))
            {
                m_currentUIIndex = index;
//                GameObject obj = ui.m_uiClickObjs[ui.m_currentClickerIndex % ui.m_uiClickObjs.Count];
                //Debug.LogWarning("JoystickPos:" + ui.m_ui.ToString() + ",Button:" + obj);
                break;
            }
            index = (i + m_currentUIIndex + 1) % count;
            JoystickAutoMapUI nextUI = m_allJoystickUI[index];
            nextUI.ResetIndexByOffset(offset);
        }

        CorrectMark();
    }
 public void AddAutoMapUI(JoystickAutoMapUI ui)
 {
     m_allJoystickUI.Remove(ui);
     m_allJoystickUI.Add(ui);
     m_currentUIIndex         = m_allJoystickUI.Count - 1;
     ui.m_currentClickerIndex = 0;
     //Debug.LogWarning("AddUI:" + ui.m_ui.ToString());
     //if (GetCurrentClicker() == null)
     {
         MoveFocusButton(0);
     }
 }
    public void RemoveAutoMapUI(JoystickAutoMapUI ui)
    {
        bool isRemoved = m_allJoystickUI.Remove(ui);

        if (m_allJoystickUI.Count > 0 && isRemoved)
        {
            m_currentUIIndex = m_allJoystickUI.Count - 1;

//            JoystickAutoMapUI curUI = m_allJoystickUI[m_currentUIIndex];
            //Debug.LogWarning("RemoveUI:" + ui.m_ui.ToString() + ",Current:" + curUI.m_ui.ToString());

            MoveFocusButton(0);
        }
    }
Esempio n. 4
0
 public void OnLoaded()
 {
     if ((m_cacheStatus & CachedStatus.Parent) != 0)
     {
         Vector3 pos = WindowRoot.transform.localPosition;
         SetParent(m_cacheParent);
         m_cacheParent = null;
         WindowRoot.transform.localScale    = Vector3.one;
         WindowRoot.transform.localPosition = pos;
     }
     OnInit();
     AttachEvent();
     if ((m_cacheStatus & CachedStatus.Visible) != 0)
     {
         if (m_cacheVisiable)
         {
             ShowWindow();
         }
         else
         {
             HideWindow();
         }
     }
     if ((m_cacheStatus & CachedStatus.Position) != 0)
     {
         SetLocalPosition(m_cachePositon);
     }
     if ((m_cacheStatus & CachedStatus.Scale) != 0)
     {
         SetLocalScale(m_cacheScale);
     }
     if ((m_cacheStatus & CachedStatus.Name) != 0)
     {
         SetRootName(m_cacheName);
     }
     m_cacheStatus = CachedStatus.None;
     if (IsAutoMapJoystick)
     {
         JoystickMap = new JoystickAutoMapUI();
         JoystickMap.Init(this);
     }
 }
    GameObject GetCurrentClicker()
    {
        int count = m_allJoystickUI.Count;

        if (count == 0 || m_currentUIIndex < 0)
        {
            return(null);
        }
        JoystickAutoMapUI ui = m_allJoystickUI[m_currentUIIndex % count];

        if (ui.m_uiClickObjs == null || ui.m_uiClickObjs.Count == 0)
        {
            return(null);
        }
        if (ui.m_currentClickerIndex < 0 || ui.m_currentClickerIndex >= ui.m_uiClickObjs.Count)
        {
            return(null);
        }
        GameObject obj = ui.m_uiClickObjs[ui.m_currentClickerIndex % ui.m_uiClickObjs.Count];

        return(obj);
    }