195 lines
6.1 KiB
C#
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;
|
|
}
|
|
}
|
|
|
|
}
|