using Assets.Scripts; using Assets.Scripts.UI.Control; using DG.Tweening; using System; using System.Collections; using System.Collections.Generic; using System.Linq; using UnityEngine; using UnityEngine.EventSystems; using UnityEngine.UI; public class NewMainNav : MonoBehaviour { private GameObject exit; private GameObject home; private GameObject back; float delayTime = 0; private List typeArray = new List() { "Back","Exit","Home","Device","Delay","Setting","Support","Avatar" }; private List indexs = new List(); private int? shrinkIndex = null; /// /// /// /// 1:"Exit",3:"Device",4:"Delay",5:"Setting",6:"Support",7:"Avatar" /// 0:"Back",2:"Home",null:仅PF public void SetButtonActive(List indexs,int? shrinkIndex = null) { this.indexs = indexs; this.shrinkIndex = shrinkIndex; SetExpand(false); //List types = new List(); //if (indexs != null) //{ // types = typeArray.Where((x, i) => indexs.Contains(i)).ToList(); //} //foreach (Transform item in transform) //{ // item.gameObject.SetActive(types.Contains(item.name)); //} } /// /// true:展开 false:关闭 /// /// private void SetExpand(bool flag) { List types = new List(); if (indexs != null) { types = typeArray.Where((x, i) => indexs.Contains(i)).ToList(); } string shrinkName = null; if (shrinkIndex.HasValue && (shrinkIndex == 0 || shrinkIndex == 2)) { shrinkName = typeArray[shrinkIndex.Value]; } foreach (Transform item in transform) { if (flag) { if (item.name == "Down") { item.gameObject.SetActive(true); } else if (item.name == "PF") { item.gameObject.SetActive(false); } else { item.gameObject.SetActive(types.Contains(item.name)); } } else { item.gameObject.SetActive(item.name == "PF"|| item.name == shrinkName); } } } private void Awake() { Utils.DisplayHead(transform.Find("Avatar").GetComponent(), App.CurrentUser.WxHeadImg); UIManager.AddEvent(transform.Find("Avatar").gameObject, EventTriggerType.PointerClick, b => { UIManager.ShowUserInfoPanel(); }); UIManager.AddEvent(transform.Find("PF").gameObject, EventTriggerType.PointerClick, b => { SetExpand(true); }); UIManager.AddEvent(transform.Find("Down").gameObject, EventTriggerType.PointerClick, b => { SetExpand(false); }); //var material = Instantiate(Resources.Load("UI/Material/RoundedCornersTextureMaterial")); //var rect = ((RectTransform)this.transform).rect; //material.SetVector(Shader.PropertyToID("_WidthHeightRadius"), new Vector4(rect.width, rect.height, rect.height, 0)); //this.GetComponent().material = material; var device = this.transform.Find("Device"); UIManager.AddEvent(device.gameObject, EventTriggerType.PointerClick, x => { //Debug.Log("click device"); UIManager.ShowDevicePanel(); }); home = this.transform.Find("Home").gameObject; UIManager.AddEvent(home, EventTriggerType.PointerClick, x => { UIManager.ShowHomePanel(); }); exit = this.transform.Find("Exit").gameObject; exit.SetActive(false); back = transform.Find("Back").gameObject; back.SetActive(false); #if UNITY_ANDROID || UNITY_IOS UIManager.AddEvent(transform.Find("Delay").gameObject, EventTriggerType.PointerClick, b => { delayTime = 3; transform.Find("Delay/Tooltips").gameObject.SetActive(true); transform.Find("Delay/Tooltips").GetComponent().DOFade(1, 0.5f); }); #endif //transform.Find("Delay").GetComponent().showTooltip = true; UIManager.AddEvent(exit, EventTriggerType.PointerClick, (e) => { UIManager.ShowConfirm("Quit", "Do you want to quit PowerFun?", ()=> { Application.Quit(); },2); }); UIManager.AddEvent(back, EventTriggerType.PointerClick, (e) => { UIManager.ShowPrePanel(); }); UIManager.AddEvent(transform.Find("Setting").gameObject, EventTriggerType.PointerClick, x => { UIManager.ShowSettingModal(); }); UIManager.AddEvent(transform.Find("Support").gameObject, EventTriggerType.PointerClick, x => { UIManager.ShowFeedBackModal(); }); } public void ShowRowerTab() { if (transform.Find("Device")) { transform.Find("Device").gameObject.SetActive(false); } if (transform.Find("Exit")) { transform.Find("Exit").gameObject.SetActive(true); } if (transform.Find("Home")) { transform.Find("Home").gameObject.SetActive(false); } } // Start is called before the first frame update void Start() { } // Update is called once per frame void Update() { if (delayTime < 0) { Debug.Log("小时"); delayTime = 0; transform.Find("Delay/Tooltips").GetComponent().DOFade(0, 0.5f).onComplete = ()=> { transform.Find("Delay/Tooltips").gameObject.SetActive(false); }; } else if(delayTime > 0) { Debug.Log(delayTime); delayTime -= Time.deltaTime; } } }