using Assets.Scripts.Apis.Models; using Assets.Scripts.UI.Control; using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.SceneManagement; using UnityEngine.UI; public class Tips : MonoBehaviour { public NearRouteModel Model { get { return _model; } } private Text Name; private Text Count; private Text Distance; private Text TotalClimb; private PFUIButton pFUIButton; private void Awake() { var material = Instantiate(Resources.Load("UI/Material/RoundedCornersTextureMaterial")); var rect = ((RectTransform)transform).rect; material.SetVector(Shader.PropertyToID("_WidthHeightRadius"), new Vector4(rect.width, rect.height, 40f, 0)); this.GetComponent().material = material; Name = this.transform.Find("Name").GetComponent(); Count = this.transform.Find("Count").GetComponent(); Distance = this.transform.Find("Distance").GetComponent(); TotalClimb = this.transform.Find("TotalClimb").GetComponent(); pFUIButton = this.transform.Find("Ride").GetComponent(); UIManager.AddEvent(pFUIButton.gameObject, UnityEngine.EventSystems.EventTriggerType.PointerClick, (e) => { App.RouteIdParam = _model.Id; SceneManager.LoadScene("Ride"); }); } // Start is called before the first frame update void Start() { } // Update is called once per frame void Update() { } NearRouteModel _model; public void SetModel(NearRouteModel model) { if (this.isActiveAndEnabled) { if(_model.Id == model.Id) { //this.gameObject.SetActive(false); return; } } else { //this.gameObject.SetActive(true); _model = model; Name.text = _model.Name; Count.text = _model.TheHeat.ToString(); Distance.text = _model.Distance.ToString("#.0")+"KM"; TotalClimb.text = _model.TotalClimb.ToString(); } } public void Show(Vector3 position, NearRouteModel model) { //if(position.y > position.z) //{ // position.y = position.z; //} this.transform.position = position; var localPosition = this.transform.localPosition; if (localPosition.y + 150 > localPosition.z) { localPosition.y = localPosition.z -150; } if(localPosition.x * -1f > localPosition.z) { localPosition.x = localPosition.z * -1f; } else if(localPosition.x > localPosition.z *2) { localPosition.x = localPosition.z * 2; } this.transform.localPosition = localPosition; this.transform.localScale = new Vector2(2, 2); this.SetModel(model); //tips.Show(); this.gameObject.SetActive(true); } public void Hide() { this.gameObject.SetActive(false); } }