ict.shenzhi/Assets/Scripts/UI/free/FreePanel.cs

148 lines
3.7 KiB
C#

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
using DG.Tweening;
using UnityEngine.SceneManagement;
public class FreePanel : UIController
{
[SerializeField] List<Image> images;
[SerializeField] List<Image> BG;
[SerializeField] List<Vector3> trans;
[SerializeField] List<string> path = new List<string>();
[SerializeField] Button LeftBtn;
[SerializeField] Button RigthBtn;
[SerializeField] Button StartBtn;
[SerializeField] GameObject ReturnBtn;
[SerializeField] GameObject User;
[SerializeField] GameObject User1;
// Start is called before the first frame update
void Start()
{
init();
}
void init()
{
for (int i = 0; i < images.Count; i++)
{
images[i].name = i.ToString();
UIManager.ins.LoadImageAsync(path[i],BG[i],false);
if (images[i].transform.localPosition.x == 0)
{
images[i].GetComponent<CanvasGroup>().alpha = 1f;
images[i].transform.SetAsLastSibling();
}
else
{
images[i].GetComponent<CanvasGroup>().alpha = 0.5f;
}
}
RigthBtn.onClick.AddListener(() =>
{
Right();
});
LeftBtn.onClick.AddListener(() =>
{
Left();
});
StartBtn.onClick.AddListener(() =>
{
for (int i = 0; i < images.Count; i++)
{
if (images[i].transform.localPosition.x==0)
{
//填写跳转的具体场景
Debug.Log("完成跳转 "+i);
}
}
SceneManager.LoadScene("MainScenes");
});
}
void Left()
{
for(int i = 0;i < images.Count; i++)
{
images[i].transform.DOLocalMoveX(LeftGetX(images[i].transform.localPosition.x),0.25f);
}
for(int i = 0;i< images.Count; i++)
{
if (images[i].transform.localPosition.x > 20)
{
images[i].GetComponent<CanvasGroup>().alpha = 1f;
images[i].transform.SetAsLastSibling();
}
else
{
images[i].GetComponent<CanvasGroup>().alpha = 0.5f;
}
}
}
void Right()
{
for (int i = 0; i < images.Count; i++)
{
images[i].transform.DOLocalMoveX(RightGetX(images[i].transform.localPosition.x), 0.25f);
}
for (int i = 0; i < images.Count; i++)
{
if (images[i].transform.localPosition.x <0)
{
images[i].GetComponent<CanvasGroup>().alpha = 1f;
images[i].transform.SetAsLastSibling();
}
else
{
images[i].GetComponent<CanvasGroup>().alpha = 0.5f;
}
}
}
float LeftGetX(float x)
{
float temp = 0;
if (x>1)
{
temp = 0;
}
if (x==0)
{
temp = -341;
}
if (x<0)
{
temp = 279;
}
return temp;
}
float RightGetX(float x)
{
float temp = 0;
if (x>1)
{
temp = -341;
}
if (x==0)
{
temp = 279;
}
if (x<0)
{
temp = 0;
}
return temp;
}
private void OnEnable()
{
ReturnBtn.SetActive(false);
User.SetActive(false);
User1.SetActive(true);
}
private void OnDisable()
{
ReturnBtn.SetActive(true);
User.SetActive(true);
User1.SetActive(false);
}
}