using Assets.Scripts; using Assets.Scripts.Apis; using Assets.Scripts.Apis.Models; using Assets.Scripts.UI.Prefab.MapList; using DG.Tweening; using System; using System.Collections; using System.Collections.Generic; using System.Linq; using UnityEditor; using UnityEngine; using UnityEngine.Events; using UnityEngine.EventSystems; using UnityEngine.SceneManagement; using UnityEngine.UI; public class MapListController : PFUIPanel { // Start is called before the first frame update [SerializeField] GameObject map; [SerializeField] GameObject content; [SerializeField] GameObject scroll; [HideInInspector] public int pageIndex = 0; #if UNITY_ANDROID || UNITY_IOS [HideInInspector] public int pageSize = 21; #else [HideInInspector] public int pageSize = 20; #endif [HideInInspector] public string hard = "全部"; private Transform distanceOptions; private Transform diffOptions; private Transform tdContainer; private Transform favContainer; private Transform sorts; private Transform sortDir; private Transform searchInput; //private Transform distanceOption; //private Transform distanceOption; private Button returnBtn; GameObject btnMapMode; public GameObject Content { get { return content; } } private bool isEnd = false; private Transform topContainer; void ResetPage() { var rect = transform.GetComponent(); rect.offsetMax = new Vector2(rect.offsetMax.x, 0); rect.offsetMin = new Vector2(rect.offsetMin.x, 0); rect.localScale = Vector3.one; rect.localPosition = Vector3.zero; } private GameObject btnDelete; protected override void Start() { #if (UNITY_ANDROID || UNITY_IOS) topContainer = transform.Find("Top"); ResetPage(); //var rectTransform = transform.GetComponent(); //var offsetMax = rectTransform.offsetMax; //rectTransform.offsetMax = new Vector2(0, offsetMax.y); //var offsetMin = rectTransform.offsetMin; //rectTransform.offsetMin = new Vector2(0, offsetMin.y); var widthDelta = (transform.parent.parent.GetComponent().sizeDelta.x - transform.GetComponent().sizeDelta.x)/2; //筛选按钮 var topRect = topContainer.GetComponent(); topRect.localPosition = new Vector3(topRect.localPosition.x - widthDelta , topRect.localPosition.y, topRect.localPosition.z); if (!App.topRectStartX.HasValue) { App.topRectStartX = topRect.localPosition.x; } if (App.isFullScreen) { topRect.sizeDelta = new Vector2(topRect.sizeDelta.x + 20, topRect.sizeDelta.y); } var mc = transform.Find("MC"); UIManager.AddEvent(transform.Find("SwitchMode/BtnFilter").gameObject, EventTriggerType.PointerClick, b => { OpenFilter(); }); UIManager.AddEvent(mc.gameObject, EventTriggerType.PointerClick, b => { CloseFilter(); }); UIManager.AddEvent(transform.Find("Upload").gameObject, EventTriggerType.PointerClick, b => { UIManager.ShowConfirm(App.GetLocalLanguage()=="zh"?"上传线路":"Upload Route", App.GetLocalLanguage() == "zh"? @"复制www.powerfun.com至电脑端,登录后点击""上传活动""按钮上传你的.fit或者.gpx文件" : @"Copy www.powerfun.com to the computer, then log in and click the button ""Upload an Activity"" to upload your .fit or .gpx file", () => { UnityEngine.GUIUtility.systemCopyBuffer = "http://www.powerfun.com"; UIManager.CloseConfirm(); }); }); map = Resources.Load("UI/Prefab/MapList/MapItem-Mobile"); Debug.Log(98); var nav = transform.Find("Tmp/MainNav-mobile").GetComponent(); nav.SetButtonActive(new List { 0, 3, 6, 7 }, 0, new NewMainNav.CustomButton(Resources.Load("Images/Mobile/map_筛选"), () => { OpenFilter(false); })); newNav = nav; #else topContainer = transform.Find("Panel/Top/Container"); #endif #if UNITY_STANDALONE_WIN btnMapMode = this.transform.Find("SwitchMode").gameObject; SetRounded(btnMapMode.transform, 64); UIManager.AddEvent(btnMapMode.transform.Find("GoList").gameObject, EventTriggerType.PointerClick, (e) => { if (App.websiteDict.ContainsKey(App.Host)) { Application.OpenURL($"{App.websiteDict[App.Host]}Mine/Upload?token={App.CurrentUser.cookie}"); } else { Application.OpenURL("http://www.powerfun.com/Mine/Upload?token=" + App.CurrentUser.cookie); } }); transform.Find("MainNav").GetComponent().ShowBack(); #endif #if UNITY_ANDROID || UNITY_IOS btnDelete = transform.Find("Upload/Delete").gameObject; #else btnDelete = topContainer.Find("Delete").gameObject; #endif UIManager.AddEvent(btnDelete, EventTriggerType.PointerClick, b => { if (btnDelete.name == "Delete") { btnDelete.name = "DeleteFinish"; App.isUploadDeleteMode = true; foreach (Transform map in content.transform) { if (map.GetComponent()) map.GetComponent().ChangeUploadImageMode(); } #if UNITY_ANDROID || UNITY_IOS btnDelete.GetComponent().sprite = Resources.Load("Images/routedelete/ICON_done_44"); #else btnDelete.GetComponent().color = Utils.HexToColorHtml("#f93086"); var image = btnDelete.transform.Find("Image"); image.GetComponent().sizeDelta = new Vector2(24, 18); image.GetComponent().sprite = Resources.Load("Images/Done"); #endif } else { btnDelete.name = "Delete"; App.isUploadDeleteMode = false; foreach (Transform map in content.transform) { if (map.GetComponent()) map.GetComponent().ChangeUploadImageMode(); } #if UNITY_ANDROID || UNITY_IOS btnDelete.GetComponent().sprite = Resources.Load("Images/routedelete/ICON_delete_44"); #else btnDelete.GetComponent().color = Utils.HexToColorHtml("#23232d"); var image = btnDelete.transform.Find("Image"); image.GetComponent().sizeDelta = new Vector2(18, 20); image.GetComponent().sprite = Resources.Load("Images/Delete"); #endif } }); sort = "Near"; sortDire = "asc"; //if (hardSelector != null) //{ // hardSelector.onValueChanged.AddListener(ChangeHard); //} //ApiBase.SetCookie("15A37DF28842CBA8E4E550BFA24186C8222D392F3EE18D9E95A49CC32796D2E3F6E40385C6A114942546EE1DD793DF34880DE48090B91AD2460EB887B59664BB3965F3371DDA1F1401EC7F27C5A1084566E47069F12CB6BBC0BC7A84ADC5582B"); if (content!=null) { //var transform = content.transform.GetComponent(); //var layout = content.GetComponent(); //if (layout != null) //{ // var width = transform.rect.width; // layout.cellSize = new Vector2((width - 120) / 5, (width - 120) / 5); //} } distanceOptions = topContainer.Find("distanceOptions"); if (distanceOptions != null) { var dDropdown = distanceOptions.GetComponent(); dDropdown.options = MapFilterOptions.distances; dDropdown.onValueChanged.AddListener(ChangeDistance); } diffOptions = topContainer.Find("DifficultyContainer"); if (diffOptions != null) { foreach (Transform t in diffOptions) { var button = t.GetComponent