powerfun-unity/Assets/Scripts/Scenes/LoginController.cs

314 lines
9.6 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

using Assets.Scripts;
using DG.Tweening;
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
using System;
using System.Collections;
using System.Collections.Generic;
using System.Reflection;
using System.Text;
using UnityEngine;
using UnityEngine.Events;
using UnityEngine.EventSystems;
using UnityEngine.SceneManagement;
using UnityEngine.UI;
//记录小f 是-457和-681
public class LoginForm
{
public InputField phone;
public InputField pwd;
}
public class LoginController : MonoBehaviour
{
[SerializeField] InputField[] loginForm;
[SerializeField] Button login;
[SerializeField] Button loginNewAccount;
[SerializeField] Button loginReturn2;
[SerializeField] Button returnQuick;
[SerializeField] Button regNext;
[SerializeField] Button regPrev;
[SerializeField] Button sign;
[SerializeField] Button remember;
[SerializeField] GameObject loginScrollView;
[SerializeField] GameObject signScrollView;
[SerializeField] GameObject avatarScrollView;
[SerializeField] RawImage loading;
[SerializeField] Button exit;
private ScrollRect scrollPanel;
private ScrollRect scrollSign;
private ScrollRect scrollAvatar;
private Transform imagexf;
// Start is called before the first frame update
void Start()
{
//transform.Find("RawImage").DOMove(new Vector3(0.5f,0.5f,0),1);
if (loginForm.Length == 2 && loginForm[0]!=null && loginForm[1]!=null)
{
foreach (var ipt in loginForm)
{
UIManager.AddEvent(ipt.gameObject, EventTriggerType.PointerClick, new UnityAction<BaseEventData>
((BaseEventData arg0) => { OnLoginInputSelect(arg0, ipt.gameObject); }));
UIManager.AddEvent(ipt.gameObject, EventTriggerType.Select, new UnityAction<BaseEventData>
((BaseEventData arg0) => { OnLoginInputSelect(arg0, ipt.gameObject); }));
UIManager.AddEvent(ipt.gameObject, EventTriggerType.Deselect, new UnityAction<BaseEventData>
((BaseEventData arg0) => { OnLoginInputDeSelect(arg0, ipt.gameObject); }));
}
//loginForm[0].
}
if (login != null)
{
login.onClick.AddListener(Submit);
//login.onClick.AddListener(Submit);
}
if (loading != null)
{
loading.texture.wrapMode = TextureWrapMode.Repeat;
}
if (loginScrollView != null)
{
scrollPanel = loginScrollView.GetComponent<ScrollRect>();
}
if (signScrollView != null)
{
scrollSign = signScrollView.GetComponent<ScrollRect>();
}
if (avatarScrollView != null)
{
scrollAvatar = avatarScrollView.GetComponent<ScrollRect>();
}
if (loginNewAccount != null)
{
loginNewAccount.onClick.AddListener(goLogin);
}
if (returnQuick != null)
{
returnQuick.onClick.AddListener(ReturnQuick);
}
if (sign != null)
{
sign.onClick.AddListener(goSign);
}
if (loginReturn2 != null)
{
loginReturn2.onClick.AddListener(goLoginReturn2);
}
if (regNext != null)
{
regNext.onClick.AddListener(goRegNext);
}
if (regPrev != null)
{
regPrev.onClick.AddListener(goRegPrev);
}
if (exit != null)
{
exit.onClick.AddListener(() => Application.Quit());
}
if (remember != null)
{
remember.onClick.AddListener(() =>
{
var gou = remember.transform.Find("Gou");
if (gou.gameObject.activeSelf)
{
gou.gameObject.SetActive(false);
}
else
{
gou.gameObject.SetActive(true);
}
});
}
imagexf = transform.Find("Panel").Find("LoginContainer").Find("Imagexf");
}
private void OnLoginInputDeSelect(BaseEventData arg0, GameObject game)
{
var image = game.transform.GetComponent<Image>();
image.sprite = Resources.Load<Sprite>("Images/gl-no");
//var rect = game.transform.GetComponent<RectTransform>();
//rect.SetSiblingIndex(rect.childCount-1);
}
private void OnLoginInputSelect(BaseEventData arg0,GameObject game)
{
var image = game.transform.GetComponent<Image>();
image.sprite = Resources.Load<Sprite>("Images/gl");
//var rect = game.transform.GetComponent<RectTransform>();
//rect.SetSiblingIndex(0);
}
private void goRegPrev()
{
StartScrollSign(0);
}
private void goRegNext()
{
StartScrollSign(1);
}
private void goLoginReturn2()
{
this.StartScrollPanel(1);
}
void ReturnQuick()
{
if (imagexf != null)
{
imagexf.DOLocalMove(new Vector3(0, -447, 0), 0.3f);
}
this.StartScrollPanel(0);
}
void goLogin()
{
if (imagexf != null)
{
imagexf.DOLocalMove(new Vector3(0, -635, 0), 0.3f);
}
this.StartScrollPanel(1);
}
void goSign()
{
this.StartScrollPanel(2);
this.StartScrollSign(0);
}
async void Submit()
{
if (loginForm[0] == null || loginForm[1] == null)
{
Utils.showToast(gameObject, "未绑定", 1);
return;
}
//if (string.IsNullOrEmpty(phone.text) || string.IsNullOrEmpty(pwd.text))
//{
// Utils.showToast(gameObject, "请输入信息", 1);
// return;
//}
//var res = await Global.userApi.Login(phone.text, pwd.text, "");
//测试用
var res = await ConfigHelper.userApi.Login("15651831367", "123456", "");
//var res = await NoAuthApi.Login(phone.text, pwd.text);
if (res.result)
{
ConfigHelper.CurrentUser = res.data;
SceneManager.LoadScene("MainScene");
}
else
{
}
}
// Update is called once per frame
void Update()
{
//Debug.Log($"{phone.isFocused}, ${pwd != null}, ${Input.GetKeyDown(KeyCode.Tab)}");
if (loginForm[0].isFocused && loginForm[1] != null && Input.GetKeyDown(KeyCode.Tab))
{
loginForm[1].ActivateInputField();
}
goScrollPanel();
goScrollSign();
//if (Input.GetKeyDown(KeyCode.Return) && )
//{
//}
//if (Input.GetKeyDown(KeyCode.Return)) {
// Debug.Log("回车键");
// if (pwd.isFocused)
// {
// this.Submit();
// }
//}
}
#region
private int tmpImdex = 0;
private int scrollPanelIndex = 2;
//private float scrollValue = 0.5f;
private bool startScrollPanel = false;
private void StartScrollPanel(int index)
{
if (startScrollPanel) return;
scrollPanelIndex = index;
startScrollPanel = true;
}
private void goScrollPanel()
{
var index = scrollPanelIndex;
var scrollValue = 1f/(3 - 1);
var value = index * scrollValue;
if (scrollPanel != null && startScrollPanel)
{
if (scrollPanel.horizontalNormalizedPosition >= value)
{
scrollPanel.horizontalNormalizedPosition -= (scrollValue / 20);
if (scrollPanel.horizontalNormalizedPosition <= value)
{
scrollPanel.horizontalNormalizedPosition = value;
startScrollPanel = false;
}
}
else
{
scrollPanel.horizontalNormalizedPosition += (scrollValue / 20);
if (scrollPanel.horizontalNormalizedPosition >= value)
{
scrollPanel.horizontalNormalizedPosition = value;
startScrollPanel = false;
}
}
}
}
#endregion
private void Test()
{
//if (startScrollPanel) return;
//scrollPanelIndex = ((int)System.Math.Pow(tmpImdex, 3)
// + 2*(int)System.Math.Pow(tmpImdex, 2)
// + 1) % 4;
//tmpImdex++;
//Debug.Log(scrollPanelIndex);
//startScrollPanel = true;
if (startScrollSign) return;
scrollSignIndex = (scrollSignIndex + 1) % 2;
Debug.Log(scrollSignIndex);
startScrollSign = true;
}
#region
private bool startScrollSign = false;
private int scrollSignIndex = 0;
private void StartScrollSign(int index)
{
if (startScrollSign) return;
scrollSignIndex = index;
startScrollSign = true;
}
private void goScrollSign()
{
float value = scrollSignIndex;
if (scrollSign != null && startScrollSign)
{
if (scrollSignIndex == 0)
{
scrollSign.horizontalNormalizedPosition -= (1f / 20);
if (scrollSign.horizontalNormalizedPosition <= 0)
{
scrollSign.horizontalNormalizedPosition = 0;
startScrollSign = false;
}
}
else if (scrollSignIndex == 1)
{
scrollSign.horizontalNormalizedPosition += (1f / 20);
if (scrollSign.horizontalNormalizedPosition >= 1)
{
scrollSign.horizontalNormalizedPosition = 1;
startScrollSign = false;
}
}
}
}
#endregion
}