protected virtual void Drag(PointerEventData eventData) { if (m_CurStatus == HeroItemStatus.NoOperations) { if (m_PreEventDataPos != Vector2.zero) { Vector2 relative = eventData.position - m_PreEventDataPos; if (Mathf.Abs(relative.x) >= Mathf.Abs(relative.y)) { m_NextStatus = HeroItemStatus.DragView; } else { m_NextStatus = HeroItemStatus.DragItem; } } } if (m_CurStatus == HeroItemStatus.DragItem) { if (UpdateDragHeroEvent != null) { UpdateDragHeroEvent(eventData.position); } } m_PreEventDataPos = eventData.position; }
protected virtual void PointerExit(PointerEventData eventData) { m_Enter = false; if (m_CurStatus == HeroItemStatus.ShowIntro) { m_NextStatus = HeroItemStatus.HideIntro; } }
protected virtual void EnterDragViewStatus() { if (HideHeroInfoEvent != null) { HideHeroInfoEvent(); } m_NextStatus = HeroItemStatus.NoOperations; }
protected virtual void EndDrag(PointerEventData eventData) { if (m_CurStatus == HeroItemStatus.DragItem) { if (GoFightEvent != null) { GoFightEvent(m_RoleId, eventData.position); } } else if (m_CurStatus == HeroItemStatus.DragView) { m_NextStatus = HeroItemStatus.NoOperations; } }
private void Update() { if (m_NextStatus != HeroItemStatus.None) { m_CurStatus = m_NextStatus; m_NextStatus = HeroItemStatus.None; switch (m_CurStatus) { case HeroItemStatus.NoOperations: EnterNoOperationsStatus(); break; case HeroItemStatus.DragView: EnterDragViewStatus(); break; case HeroItemStatus.DragItem: EnterDragItemStatus(); break; case HeroItemStatus.ShowIntro: EnterShowIntroStatus(); break; case HeroItemStatus.HideIntro: EneterHideIntroStatus(); break; case HeroItemStatus.Empty: EnterEmptyStatus(); break; } } if (m_CurStatus == HeroItemStatus.NoOperations) { if (m_Enter) { m_PointDownTimer += Time.deltaTime; if (m_PointDownTimer > 1.5f) { m_NextStatus = HeroItemStatus.ShowIntro; } } } }
protected virtual void EneterHideIntroStatus() { m_NextStatus = HeroItemStatus.NoOperations; UIDispatcher.Instance.Dispatc(ConstDefine.Hero_HideHeroIntro, null); }