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); } }
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); }