using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; using System; using UnityEngine.EventSystems; namespace vnxbqy.UI { public class SkillCell : MonoBehaviour, IPointerDownHandler, IPointerUpHandler, IPointerExitHandler { [SerializeField] SkillData skill; [SerializeField] RedpointBehaviour m_Redpoint; public SkillData skillData { get { return skill; } } SkillModel m_Model; SkillModel model { get { return m_Model ?? (m_Model = ModelCenter.Instance.GetModel()); } } TreasureSkillModel treasureSkillModel { get { return ModelCenter.Instance.GetModel(); } } private bool onPress = false; private float m_Time = 0.0f; public void OnPointerDown(PointerEventData eventData) { skill.m_SkillBtn.OnPointerClick(eventData); if (model.skillDraging) { return; } if (PlayerDatas.Instance.skill.GetSKillById(skill.skillId) == null) { return; } //if (model.IsXpSkill(skill.skillId)) //{ // return; //} onPress = true; } public void OnPointerUp(PointerEventData eventData) { //if (!model.skillDraging && skill.m_SkillBtn != null && onPress) { //} onPress = false; m_Time = 0; } public void OnPointerExit(PointerEventData eventData) { onPress = false; m_Time = 0; } public void Refresh(int skillId) { skill.SetSkillData(skillId); if (model.presentSltSkillID == skillId) { skill.m_SelectImg.SetActive(true); } else { skill.m_SelectImg.SetActive(false); } skill.SetActive(PlayerDatas.Instance.skill.GetSKillById(skillId) != null); skill.m_SkillBtn.onClick.RemoveAllListeners(); skill.m_SkillBtn.onClick.AddListener(OnClickSkill); var config = SkillConfig.Get(skillId); if (m_Redpoint != null) { TreasureSkill treasureSkill; if (treasureSkillModel.TryGetSkill(config.SkillTypeID, out treasureSkill)) { m_Redpoint.redpointId = treasureSkill.levelUpRedpoint.id; } } } private void OnClickSkill() { model.presentSltSkillID = skill.skillId; model.RefreshSltSkill(); } private void LateUpdate() { if (onPress && !model.skillDraging) { m_Time += Time.deltaTime; if (m_Time > model.onDragDelay) { model.skillDragId = skill.skillId; model.skillDraging = true; m_Time = 0; onPress = false; } } } } }