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.SetActive(!string.IsNullOrEmpty(config.Drop1)); m_ContainerDrop2.SetActive(!string.IsNullOrEmpty(config.Drop2)); m_ContainerDrop3.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.SetActive(false); m_Line.SetActive(false); m_ContainerDetails.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.SetActive(true); m_Line.SetActive(true); m_ContainerDetails.SetActive(true); } }