少年修仙传客户端代码仓库
client_Wu Xijin
2019-06-13 033958214c0b16d7e7b93cc821b018c295251867
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using Snxxz.UI;
using UnityEngine.UI;
using UnityEngine.EventSystems;
using System;
 
public class ExchangeEquipCell : MonoBehaviour
{
    [SerializeField] ItemCell m_ItemCell;
    [SerializeField] Image m_ChoseImg;
    [SerializeField] LongPressButton m_LongBtn;
    private ItemModel m_ItemModel;
    private ExchangeActiveTokenModel m_Model { get { return ModelCenter.Instance.GetModel<ExchangeActiveTokenModel>(); } }
    private DateTime m_PressTime;
    private IEnumerator m_IE_LongPress;
 
    public void SetSelf(ItemModel item)
    {
        m_ItemModel = item;
        if(m_ItemModel == null)
        {
            m_ItemCell.gameObject.SetActive(false);
            m_ChoseImg.gameObject.SetActive(false);
            return;
        }
        m_ItemCell.gameObject.SetActive(true);
        bool bIsChose = m_Model.ChoseEquips.Contains(m_ItemModel);
        m_ChoseImg.gameObject.SetActive(bIsChose);
        m_ItemCell.Init(item, true);
        m_ItemCell.button.RemoveAllListeners();
        
        m_ItemCell.button.AddListener(() =>
        {
            m_Model.EquipCellClick(m_ItemModel,
                ()=>
                {
                    m_ChoseImg.gameObject.SetActive(m_Model.ChoseEquips.Contains(m_ItemModel));
                });        
        });
        var et = m_ItemCell.button.gameObject.GetComponent<EventTrigger>();
        if(et == null)
        {
            et = m_ItemCell.button.gameObject.AddComponent<EventTrigger>();
            EventTrigger.Entry entry_1 = new EventTrigger.Entry();
            entry_1.eventID = EventTriggerType.PointerDown;
            entry_1.callback.AddListener((data) =>
            {
                m_IE_LongPress = PointLongPress();
                StartCoroutine(m_IE_LongPress);
            });
            et.triggers.Add(entry_1);
        }
     
    }
    IEnumerator PointLongPress()
    {
        float time = 0;
        while (Input.GetMouseButton(0))
        {
            time += Time.deltaTime;
            if(time > 0.5f)
            {
                ItemTipUtility.Show(m_ItemModel.guid, false);
                break;
            }
            yield return 0;
        }
    }
 
}