public virtual void SelectElement(int index, bool isDispatchSelectedChangeEvent = true) { m_lastSelectedElementIndex = m_selectedElementIndex; m_selectedElementIndex = index; if (m_lastSelectedElementIndex == m_selectedElementIndex) { if (alwaysDispatchSelectedChangeEvent && isDispatchSelectedChangeEvent) { DispatchElementSelectChangedEvent(); } return; } if (m_lastSelectedElementIndex >= 0) { UIListElementScript elemenet = GetElemenet(m_lastSelectedElementIndex); if (elemenet != null) { elemenet.ChangeDisplay(false); } } if (m_selectedElementIndex >= 0) { UIListElementScript elemenet2 = GetElemenet(m_selectedElementIndex); if (elemenet2 != null) { elemenet2.ChangeDisplay(true); if (elemenet2.onSelected != null) { elemenet2.onSelected(); } } } if (isDispatchSelectedChangeEvent) { DispatchElementSelectChangedEvent(); } }