184 lines
7.0 KiB
C#
184 lines
7.0 KiB
C#
using System.Collections;
|
|
using System.Collections.Generic;
|
|
using UnityEngine;
|
|
using UnityEngine.UI;
|
|
using XFrame.Core.UI;
|
|
using XFrame.Core.Tool;
|
|
using UnityEngine.EventSystems;
|
|
using DG.Tweening;
|
|
|
|
namespace YHElectric
|
|
{
|
|
public class MainPanel : XUIPanel
|
|
{
|
|
static Transform modelListTrans;
|
|
static Transform functionTrans;
|
|
static Transform strategyBgTrans;
|
|
static Transform topBarTrans;
|
|
private static float modelListTransX;
|
|
private static float functionTransX;
|
|
private Button roam;
|
|
private Slider moveSlider;
|
|
|
|
bool isFunctionShow = false;
|
|
bool isModelListTransShow = false;
|
|
bool isStrategyShow = false;
|
|
bool sliderTrigger = false;
|
|
|
|
|
|
public MainPanel() : base(UIType.Fixed, UIMode.None, UICollider.None)
|
|
{
|
|
uiPath = "UI/UIPanelPrefab/MainPanel";
|
|
}
|
|
public override void Awake(GameObject go)
|
|
{
|
|
topBarTrans = transform.Find("BG/topBar");
|
|
modelListTrans = transform.Find("BG/modelList");
|
|
strategyBgTrans = transform.Find("BG/strategy/bg");
|
|
functionTrans = transform.Find("BG/function");
|
|
moveSlider = transform.Find("BG/moveSlider").GetComponent<Slider>();
|
|
roam = transform.Find("BG/roam").GetComponent<Button>();
|
|
modelListTransX = modelListTrans.GetComponent<RectTransform>().position.x;
|
|
functionTransX = functionTrans.GetComponent<RectTransform>().localPosition.x;
|
|
|
|
strategyBgTrans.GetComponent<Button>().onClick.AddListener(StrategyClick);
|
|
modelListTrans.gameObject.AddComponent<EventTrigger>().AddListener(EventTriggerType.PointerDown, ModelListShow);
|
|
functionTrans.gameObject.AddComponent<EventTrigger>().AddListener(EventTriggerType.PointerDown, FunctionShow);
|
|
moveSlider.gameObject.AddComponent<EventTrigger>().AddListener(EventTriggerType.PointerExit, MoveSliderEnd);
|
|
|
|
moveSlider.onValueChanged.AddListener(MoveSlider);
|
|
|
|
|
|
transform.Find("BG/timeSky").GetComponent<Button>().onClick.AddListener(TimeSkyBtnClick);//天气按钮点击调用事件
|
|
roam.onClick.AddListener(RoamBtnClick);//漫游按钮点击调用事件
|
|
|
|
for (int i=0;i< strategyBgTrans.childCount-1; i++)
|
|
{
|
|
int index = i;
|
|
strategyBgTrans.GetChild(i).GetComponent<Button>().onClick.AddListener(() =>
|
|
StrategyBtnClick(strategyBgTrans.GetChild(index).GetComponent<Button>().name)
|
|
);
|
|
strategyBgTrans.GetChild(i).GetComponent<RectTransform>().localScale = Vector3.zero;
|
|
}
|
|
|
|
for(int i=0;i< topBarTrans.childCount; i++)
|
|
{
|
|
topBarTrans.GetChild(i).gameObject.AddComponent<EventTrigger>().AddListener(EventTriggerType.PointerDown, TopBarElemShow);
|
|
}
|
|
}
|
|
private void TopBarElemShow(PointerEventData eventData)
|
|
{
|
|
for(int i = 0; i < eventData.hovered.Count; i++)
|
|
{
|
|
if (eventData.hovered[i].CompareTag("TopBar"))
|
|
{
|
|
HideOtherTopBar(eventData.hovered[i].gameObject);
|
|
TopBarElement topBarElement = eventData.hovered[i].GetComponent<TopBarElement>();
|
|
topBarElement.isShow = !topBarElement.isShow;
|
|
if (topBarElement.isShow)
|
|
topBarElement.Enter();
|
|
else
|
|
topBarElement.Exit();
|
|
return;
|
|
}
|
|
}
|
|
}
|
|
void HideOtherTopBar(GameObject go)
|
|
{
|
|
for(int i = 0; i < topBarTrans.childCount; i++)
|
|
{
|
|
if (go != topBarTrans.GetChild(i).gameObject)
|
|
{
|
|
if (topBarTrans.GetChild(i).GetComponent<TopBarElement>().isShow)
|
|
{
|
|
topBarTrans.GetChild(i).GetComponent<TopBarElement>().isShow = false;
|
|
topBarTrans.GetChild(i).GetComponent<TopBarElement>().Exit();
|
|
}
|
|
}
|
|
}
|
|
}
|
|
private void ModelListShow(PointerEventData eventData)
|
|
{
|
|
isModelListTransShow = !isModelListTransShow;
|
|
if (isModelListTransShow)
|
|
modelListTrans.DOMoveX(0, 0.2f).SetEase(Ease.InOutQuad);
|
|
else
|
|
modelListTrans.DOMoveX(modelListTransX, 0.2f).SetEase(Ease.InOutQuad);
|
|
}
|
|
private void FunctionShow(PointerEventData eventData)
|
|
{
|
|
isFunctionShow = !isFunctionShow;
|
|
if(isFunctionShow)
|
|
functionTrans.DOLocalMoveX(Screen.width/2, 0.2f).SetEase(Ease.InOutQuad);
|
|
else
|
|
functionTrans.DOLocalMoveX(functionTransX, 0.2f).SetEase(Ease.InOutQuad);
|
|
}
|
|
private void StrategyShow(PointerEventData eventData)
|
|
{
|
|
//strategyTrans.DOMoveY(0, 0.2f).SetEase(Ease.InOutQuad);
|
|
}
|
|
private void StrategyHide(PointerEventData eventData)
|
|
{
|
|
//strategyTrans.DOMoveY(-100, 0.2f).SetEase(Ease.InOutQuad).OnComplete(() => { arrowUp.gameObject.SetActive(true); });
|
|
}
|
|
private void StrategyClick()
|
|
{
|
|
float speed = 0.2f;
|
|
isStrategyShow = !isStrategyShow;
|
|
for(int i=0;i< strategyBgTrans.childCount-1; i++)
|
|
{
|
|
if (isStrategyShow)
|
|
{
|
|
strategyBgTrans.GetChild(i).DOLocalRotate (new Vector3(0,0, -360), speed,RotateMode.FastBeyond360);
|
|
strategyBgTrans.GetChild(i).DOScale(Vector3.one, speed);
|
|
}
|
|
else
|
|
{
|
|
strategyBgTrans.GetChild(i).DOLocalRotate(new Vector3(0, 0, 360), speed, RotateMode.FastBeyond360);
|
|
strategyBgTrans.GetChild(i).DOScale(Vector3.zero, speed);
|
|
}
|
|
}
|
|
}
|
|
/// <summary>
|
|
/// 策略按钮点击事件
|
|
/// </summary>
|
|
/// <param name="name"></param>
|
|
private void StrategyBtnClick(string name)
|
|
{
|
|
Debug.Log(name);
|
|
}
|
|
/// <summary>
|
|
/// 天气时间点击调用事件
|
|
/// </summary>
|
|
private void TimeSkyBtnClick()
|
|
{
|
|
//DynamicSkyCanvas.instance.Show();
|
|
}
|
|
bool isBool = false;
|
|
/// <summary>
|
|
/// 漫游按钮点击事件
|
|
/// </summary>
|
|
private void RoamBtnClick()
|
|
{
|
|
//todo
|
|
//漫游
|
|
isBool = !isBool;
|
|
//roam.image.sprite = isBool?SpriteTool.SpriteCreate("Texture/暂停") : SpriteTool.SpriteCreate("Texture/漫游");
|
|
//CameraOperate.instance.CameraRoam(isBool);
|
|
}
|
|
|
|
private void MoveSlider(float f)
|
|
{
|
|
sliderTrigger = true;
|
|
}
|
|
private void MoveSliderEnd(PointerEventData eventData)
|
|
{
|
|
if (sliderTrigger)
|
|
{
|
|
sliderTrigger = false;
|
|
moveSlider.value = 0.5f;
|
|
}
|
|
}
|
|
}
|
|
}
|