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);
|
}
|
|
}
|