| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213 |
- using System.Collections;
- using System.Collections.Generic;
- using UnityEngine;
- using UnityEngine.UI;
- using UnityEngine.SceneManagement;
- using System.Text.RegularExpressions;
- /* 登录界面 */
- public class LoginView : MonoBehaviour
- {
- //登录方式-左侧切换按钮-按钮纹理
- [SerializeField] Sprite[] loginModeSprites;
- //登录方式-左侧切换按钮
- [SerializeField] GameObject loginNormalTab;
- [SerializeField] GameObject loginPhoneTab;
- //用户登录
- [SerializeField] GameObject loginInUser;
- [SerializeField] GameObject loginInPWD;
- [SerializeField] GameObject loginInCaptcha1;
- //手机登录
- [SerializeField] GameObject loginInPhone;
- [SerializeField] GameObject loginInCode;
- [SerializeField] GameObject loginValidTime;
- [SerializeField] GameObject loginInCaptcha2;
- int loginMode = 1;
- //状态记录
- public int captcha_Login = -222222222;
- public int captcha_LoginPhone = -222222222;
- public static LoginView ins;
- void Awake() {
- ins = this;
- if (CommonConfig.needToExamine) {
- transform.Find("BtnTabSwitch/LoginPhone").gameObject.SetActive(false); //隐藏手机登录
- transform.Find("BtnForgetPWD").gameObject.SetActive(false); //隐藏忘记密码
- transform.Find("Logo/Layout/Text1").gameObject.SetActive(false);
- }
- }
- void Start()
- {
- InitInputLimit();
- SelectLoginMode(1);
- }
- void OnDestroy() {
- if (ins == this) ins = null;
- }
- void Update() {
- #if UNITY_EDITOR
- if (Input.GetKeyDown(KeyCode.Q)) {
- GetInputField(loginInUser).text = "lvjincheng";
- GetInputField(loginInPWD).text = "19980301";
- GetInputField(loginInCaptcha1).text = captcha_Login.ToString();
- LoginNormal();
- }
- if (Input.GetKeyDown(KeyCode.W)) {
- GetInputField(loginInUser).text = "tester";
- GetInputField(loginInPWD).text = "123456";
- GetInputField(loginInCaptcha1).text = captcha_Login.ToString();
- LoginNormal();
- }
- #endif
- }
- void InitInputLimit() {
- GameObject[] inputNodes = {loginInUser, loginInPWD};
- foreach (var inputNode in inputNodes) {
- InputField inputField = GetInputField(inputNode);
- inputField.onValueChanged.AddListener(delegate(string text) {
- Match match = new Regex("[^A-Za-z0-9]").Match(text);
- if (match.Success) {
- inputField.text = text.Replace(match.Value, "");
- }
- });
- }
- }
- public void SelectLoginMode(int mode) {
- loginMode = mode;
- if (loginMode == 1) {
- loginNormalTab.GetComponent<Image>().sprite = loginModeSprites[1];
- loginPhoneTab.GetComponent<Image>().sprite = loginModeSprites[0];
- loginInUser.SetActive(true);
- loginInPWD.SetActive(true);
- loginInCaptcha1.SetActive(true);
- loginInPhone.SetActive(false);
- loginInCode.SetActive(false);
- loginValidTime.SetActive(false);
- loginInCaptcha2.SetActive(false);
- Transform btnRegister = transform.Find("BtnRegister");
- Vector3 v31 = btnRegister.localPosition; v31.y = -168.5f;
- btnRegister.localPosition = v31;
- if (captcha_Login < 0) {
- ChnageCaptcha1();
- }
- }
- else if (loginMode == 2) {
- loginNormalTab.GetComponent<Image>().sprite = loginModeSprites[0];
- loginPhoneTab.GetComponent<Image>().sprite = loginModeSprites[1];
- loginInUser.SetActive(false);
- loginInPWD.SetActive(false);
- loginInCaptcha1.SetActive(false);
- loginInPhone.SetActive(true);
- loginInCode.SetActive(false);
- loginValidTime.SetActive(false);
- loginInCaptcha2.SetActive(false);
- Transform btnInPhone = loginInPhone.transform;
- Vector3 v30 = btnInPhone.localPosition; v30.y = -30f;
- btnInPhone.localPosition = v30;
- Transform btnRegister = transform.Find("BtnRegister");
- Vector3 v31 = btnRegister.localPosition; v31.y = -88;
- btnRegister.localPosition = v31;
- if (captcha_LoginPhone < 0) {
- ChnageCaptcha2();
- }
- }
- }
- InputField GetInputField(GameObject inputNode) {
- return inputNode.transform.Find("InputField").GetComponent<InputField>();
- }
- public void ChnageCaptcha1() {
- StartCoroutine(CaptchaController.ins.GetCaptcha(
- loginInCaptcha1.transform.Find("CodeImage").GetComponent<Image>(),
- (code) => { captcha_Login = code; }
- ));
- }
- public void ChnageCaptcha2() {
- StartCoroutine(CaptchaController.ins.GetCaptcha(
- loginInCaptcha2.transform.Find("CodeImage").GetComponent<Image>(),
- (code) => { captcha_LoginPhone = code; }
- ));
- }
- public void Login() {
- if (loginMode == 1) {
- LoginNormal();
- } else if (loginMode == 2) {
- LoginByPhone();
- }
- }
- JC.CS.Throttler throttlerLoginNormal = new JC.CS.Throttler(2000);
- void LoginNormal() {
- InputField user = GetInputField(loginInUser);
- if (user.text.Trim().Length == 0) {
- PopupMgr.ins.ShowTip(TextAutoLanguage2.GetTextByCNKey("请输入用户名"));
- return;
- }
- InputField pwd = GetInputField(loginInPWD);
- if (pwd.text.Trim().Length == 0) {
- PopupMgr.ins.ShowTip(TextAutoLanguage2.GetTextByCNKey("请输入密码"));
- return;
- }
- InputField captcha = GetInputField(loginInCaptcha1);
- if (!captcha.text.Equals(captcha_Login.ToString())) {
- PopupMgr.ins.ShowTip(TextAutoLanguage2.GetTextByCNKey("验证码错误"));
- return;
- }
- if (!AgreenmentOption.ins.IsAgreementChecked()) {
- PopupMgr.ins.ShowTip(TextAutoLanguage2.GetTextByCNKey("请阅读并同意App协议"));
- return;
- }
- if (throttlerLoginNormal.CanPass() == false) {
- PopupMgr.ins.ShowTip(TextAutoLanguage2.GetTextByCNKey("操作过于频繁"));
- return;
- }
- StartCoroutine(LoginController.ins.LoginNormal(
- user.text, pwd.text, (res) => {
- PopupMgr.ins.ShowTip(TextAutoLanguage2.GetTextByCNKey(res.msg));
- if (res.code == 0) {
- string IdAndToken = (string)res.data;
- PlayerPrefs.SetString("IdAndToken", IdAndToken);
- SceneManager.LoadScene("Home", LoadSceneMode.Single);
- }
- }
- ));
- }
- void LoginByPhone() {
- InputField user = GetInputField(loginInPhone);
- Regex regex = new Regex(@"^(((13[0-9]{1})|(15[0-35-9]{1})|(17[0-9]{1})|(18[0-9]{1}))+\d{8})$");
- bool isMobilePhone = regex.IsMatch(user.text);
- if (!isMobilePhone) {
- PopupMgr.ins.ShowTip(TextAutoLanguage2.GetTextByCNKey("手机号格式不正确"));
- return;
- }
- StartCoroutine(LoginController.ins.LoginByPhone(
- user.text, (res) => {
- PopupMgr.ins.ShowTip(TextAutoLanguage2.GetTextByCNKey(res.msg));
- if (res.code == 0) {
- string IdAndToken = (string)res.data;
- PlayerPrefs.SetString("IdAndToken", IdAndToken);
- SceneManager.LoadScene("Home", LoadSceneMode.Single);
- }
- }
- ));
- }
- public void FillLoginInput(string username, string password) {
- GetInputField(loginInUser).text = username;
- GetInputField(loginInPWD).text = password;
- }
- }
|