/// <summary> /// 点击列表项 /// </summary> /// <param name="item">列表项</param> /// <param name="souroucesTarget">触发事件的事件源</param> public void OnItemClick(UILayoutItem item, Transform souroucesTarget) { if (m_IsDraging || m_IsDamping) { return; } if (m_IsSelectMoving) { return; } m_IsSelectMoving = true; if (m_ContentRectrans.anchoredPosition.x != -1 * item.m_ItemIndex * m_ItemsDistance) { float tweenTime = Mathf.Abs(Mathf.Abs(m_ContentRectrans.anchoredPosition.x) - item.m_ItemIndex * m_ItemsDistance) / m_DampingBackSpeed; Debug.Log("OnItemClick tweenTime=" + tweenTime); m_CurrentTweenner = m_ContentRectrans.DOAnchorPos(new Vector2(-1 * item.m_ItemIndex * m_ItemsDistance, 0), tweenTime). OnComplete(() => { m_IsSelectMoving = false; item.OnAfterItemClick(souroucesTarget); }).OnUpdate(OnItemMoveing); return; } item.OnAfterItemClick(souroucesTarget); m_IsSelectMoving = false; }
/// <summary> /// 当当前卡牌处于正中间的时候 /// </summary> public virtual void OnLayoutItemIsFocus() { if (m_PreviousSelect != this) { if (m_PreviousSelect != null) { m_PreviousSelect.OnLayoutItemLoseFocus(); } } m_PreviousSelect = this; }
public void ForceAutoSelectItem(int dex) { UILayoutItem item = m_ContentRectrans.GetChild(dex).GetComponent <UILayoutItem>(); OnItemClick(item, item.transform); }
void OnItemCreate(GameObject goItem, int dex) { UILayoutItem script = goItem.GetAddComponent <UILayoutItem>(); script.Initialed(dex, dex, m_UIHorizontialLayoutTool.OnItemClick); }