2021-12-28 11:25:09 +08:00

195 lines
6.1 KiB
C#

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<string> typeArray = new List<string>()
{
"Back","Exit","Home","Device","Delay","Setting","Support","Avatar"
};
private List<int> indexs = new List<int>();
private int? shrinkIndex = null;
/// <summary>
///
/// </summary>
/// <param name="indexs">1:"Exit",3:"Device",4:"Delay",5:"Setting",6:"Support",7:"Avatar"</param>
/// <param name="shrinkIndex">0:"Back",2:"Home",null:仅PF</param>
public void SetButtonActive(List<int> indexs,int? shrinkIndex = null)
{
this.indexs = indexs;
this.shrinkIndex = shrinkIndex;
SetExpand(false);
//List<string> types = new List<string>();
//if (indexs != null)
//{
// types = typeArray.Where((x, i) => indexs.Contains(i)).ToList();
//}
//foreach (Transform item in transform)
//{
// item.gameObject.SetActive(types.Contains(item.name));
//}
}
/// <summary>
/// true:展开 false:关闭
/// </summary>
/// <param name="flag"></param>
private void SetExpand(bool flag)
{
List<string> types = new List<string>();
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<Image>(), 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<Material>("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<Image>().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<CanvasGroup>().DOFade(1, 0.5f);
});
#endif
//transform.Find("Delay").GetComponent<PfUIButton>().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<CanvasGroup>().DOFade(0, 0.5f).onComplete = ()=>
{
transform.Find("Delay/Tooltips").gameObject.SetActive(false);
};
}
else if(delayTime > 0)
{
Debug.Log(delayTime);
delayTime -= Time.deltaTime;
}
}
}