少年修仙传客户端代码仓库
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
73
74
75
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
 
 
public class LocalMapEventPointInstroduce : MonoBehaviour
{
    [SerializeField] RectTransform m_Dot;
    [SerializeField] RectTransform m_Line;
    [SerializeField] RectTransform m_ContainerDetails;
    public RectTransform containerDetails { get { return m_ContainerDetails; } }
    [SerializeField] TextEx RecommondMinLv;
    [SerializeField] TextEx RecommondMaxLv;
    [SerializeField] RectTransform m_ContainerDrop1;
    [SerializeField] RectTransform m_ContainerDrop2;
    [SerializeField] RectTransform m_ContainerDrop3;
    [SerializeField] Text DropItem1;
    [SerializeField] Text DropItem2;
    [SerializeField] Text DropItem3;
 
    RectTransform m_RectTransform;
    RectTransform rectTransform { get { return this.transform as RectTransform; } }
 
    public void Display(int _id, Transform _target)
    {
        var config = MapEventPointConfig.Get(_id);
        RecommondMinLv.text = config.LowLV.ToString();
        RecommondMaxLv.text = config.Defense.ToString();
        RecommondMinLv.color = PlayerDatas.Instance.baseData.LV < config.LowLV ? UIHelper.GetUIColor(TextColType.Red, false) : UIHelper.GetUIColor(TextColType.Green, false);
        RecommondMaxLv.color = PlayerDatas.Instance.extersion.DEF < config.Defense ? UIHelper.GetUIColor(TextColType.Red, false) : UIHelper.GetUIColor(TextColType.Green, false);
 
        m_ContainerDrop1.gameObject.SetActive(!string.IsNullOrEmpty(config.Drop1));
        m_ContainerDrop2.gameObject.SetActive(!string.IsNullOrEmpty(config.Drop2));
        m_ContainerDrop3.gameObject.SetActive(!string.IsNullOrEmpty(config.EXP));
 
        DropItem1.text = config.Drop1;
        DropItem2.text = config.Drop2;
        DropItem3.text = config.EXP;
 
        StopAllCoroutines();
        StartCoroutine(Co_DelayUpdatePosition(_target));
    }
 
    IEnumerator Co_DelayUpdatePosition(Transform _target)
    {
        m_Dot.gameObject.SetActive(false);
        m_Line.gameObject.SetActive(false);
        m_ContainerDetails.gameObject.SetActive(false);
 
        yield return WaitingForSecondConst.WaitMS500;
 
        m_Dot.position = _target.position;
        if (m_Dot.localPosition.x >= 0f)
        {
            m_Line.localPosition = m_Dot.localPosition - new Vector3(m_Line.rect.width * 0.5f + m_Dot.rect.width * 0.5f, 0, 0);
            m_ContainerDetails.localPosition = m_Line.localPosition - new Vector3(m_ContainerDetails.rect.width * 0.5f + m_Line.rect.width * 0.5f, m_ContainerDetails.rect.height * 0.3f, 0);
        }
        else
        {
            m_Line.localPosition = m_Dot.localPosition + new Vector3(m_Line.rect.width * 0.5f + m_Dot.rect.width * 0.5f, 0, 0);
            m_ContainerDetails.localPosition = m_Line.localPosition + new Vector3(m_ContainerDetails.rect.width * 0.5f + m_Line.rect.width * 0.5f, m_ContainerDetails.rect.height * 0.3f, 0);
        }
 
        var heightDelta = rectTransform.rect.height - m_ContainerDetails.rect.height;
 
        var detailsLimitY = Mathf.Clamp(m_ContainerDetails.localPosition.y, -0.5f * heightDelta, 0.5f * heightDelta);
        m_ContainerDetails.localPosition = m_ContainerDetails.localPosition.SetY(detailsLimitY);
 
        m_Dot.gameObject.SetActive(true);
        m_Line.gameObject.SetActive(true);
        m_ContainerDetails.gameObject.SetActive(true);
    }
 
}