| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282 |
- using System;
- using System.Collections;
- using System.Collections.Generic;
- using UnityEngine;
- using UnityEngine.UI;
- using UnityEngine.SceneManagement;
- using System.Text.RegularExpressions;
- using DG.Tweening;
- using Newtonsoft.Json;
- public class LoginMgr : MonoBehaviour
- {
- [SerializeField] GameObject loginView;
- [SerializeField] GameObject registerView;
- [SerializeField] GameObject forgetPWD_View;
- [SerializeField] GameObject loginMode1;
- [SerializeField] GameObject loginMode2;
- [SerializeField] Sprite[] loginModeSprites;
- [SerializeField] GameObject loginInUser;
- [SerializeField] GameObject loginInPWD;
- [SerializeField] GameObject loginInPhone;
- [SerializeField] GameObject loginInCode;
- [SerializeField] GameObject loginValidTime;
- [SerializeField] GameObject registerInUser;
- [SerializeField] GameObject registerInPWD1;
- [SerializeField] GameObject registerInPWD2;
- [SerializeField] GameObject registerInNickname;
- [SerializeField] GameObject registerInGender;
- [SerializeField] Text loginTip;
- [SerializeField] Text registerTip;
- public static UserInfo myUserInfo = new UserInfo();
- static int userInfo_version = 0;
- static bool firstComeIn = true;
- int loginMode = 1;
- void Awake()
- {
- TextAutoLanguage.Init();
- }
- void Start()
- {
- SelectLoginMode(1);
- GameObject[] inputNodes = {loginInUser, loginInPWD, registerInUser, registerInPWD1, registerInPWD2};
- 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, "");
- }
- });
- }
-
- string username = PlayerPrefs.GetString("LoginRecord_User_" + userInfo_version, "");
- string password = PlayerPrefs.GetString("LoginRecord_PWD_" + userInfo_version, "");
- GetInputField(loginInUser).text = username;
- GetInputField(loginInPWD).text = password;
- if (firstComeIn && username.Length > 0 && password.Length > 0) {
- this.transform.Find("Mask").gameObject.SetActive(true);
- login();
- }
- }
- void OnDestroy()
- {
- firstComeIn = false;
- }
- InputField GetInputField(GameObject inputNode)
- {
- return inputNode.transform.Find("InputField").GetComponent<InputField>();
- }
- public void SelectLoginMode(int mode) {
- loginMode = mode;
- if (loginMode == 1)
- {
- loginMode1.GetComponent<Image>().sprite = loginModeSprites[1];
- loginMode2.GetComponent<Image>().sprite = loginModeSprites[0];
- loginInUser.SetActive(true);
- loginInPWD.SetActive(true);
- loginInPhone.SetActive(false);
- loginInCode.SetActive(false);
- loginValidTime.SetActive(false);
- }
- else if (loginMode == 2)
- {
- loginMode1.GetComponent<Image>().sprite = loginModeSprites[0];
- loginMode2.GetComponent<Image>().sprite = loginModeSprites[1];
- loginInUser.SetActive(false);
- loginInPWD.SetActive(false);
- loginInPhone.SetActive(true);
- loginInCode.SetActive(true);
- loginValidTime.SetActive(true);
- }
- loginTip.GetComponent<TextAutoLanguage>().SetText(0);
- }
- public void showRegisterView() {
- loginView.SetActive(false);
- registerView.SetActive(true);
- forgetPWD_View.SetActive(false);
- registerTip.GetComponent<TextAutoLanguage>().SetText(0);
- }
- public void showLoginView() {
- loginView.SetActive(true);
- registerView.SetActive(false);
- forgetPWD_View.SetActive(false);
- loginTip.GetComponent<TextAutoLanguage>().SetText(0);
- }
- public void showForgetPWD_View() {
- loginView.SetActive(false);
- registerView.SetActive(false);
- forgetPWD_View.SetActive(true);
- }
- public void login() {
- InputField user = GetInputField(loginInUser);
- if (user.text.Trim().Length == 0) {
- loginTip.color = Color.yellow;
- loginTip.GetComponent<TextAutoLanguage>().SetText(41);
- return;
- }
- InputField pwd = GetInputField(loginInPWD);
- if (pwd.text.Trim().Length == 0) {
- loginTip.color = Color.yellow;
- loginTip.GetComponent<TextAutoLanguage>().SetText(42);
- return;
- }
- UserInfos userInfos = GetUserInfos();
- foreach (var userInfo in userInfos.list)
- {
- if (userInfo.user == user.text) {
- if (userInfo.pwd == pwd.text) {
- loginTip.color = Color.green;
- loginTip.GetComponent<TextAutoLanguage>().SetText(43);
- myUserInfo = userInfo;
- PlayerPrefs.SetString("LoginRecord_User_" + userInfo_version, userInfo.user);
- PlayerPrefs.SetString("LoginRecord_PWD_" + userInfo_version, userInfo.pwd);
- SceneManager.LoadScene("Home", LoadSceneMode.Single);
- } else {
- loginTip.color = Color.red;
- loginTip.GetComponent<TextAutoLanguage>().SetText(44);
- }
- return;
- }
- }
- loginTip.color = Color.yellow;
- loginTip.GetComponent<TextAutoLanguage>().SetText(45);
- }
- public void Register()
- {
- InputField user = GetInputField(registerInUser);
- if (user.text.Length < 6) {
- registerTip.color = Color.red;
- registerTip.GetComponent<TextAutoLanguage>().SetText(46);
- return;
- }
- InputField pwd1 = GetInputField(registerInPWD1);
- if (pwd1.text.Length < 6) {
- registerTip.color = Color.red;
- registerTip.GetComponent<TextAutoLanguage>().SetText(47);
- return;
- }
- InputField pwd2 = GetInputField(registerInPWD2);
- if (pwd1.text != pwd2.text) {
- registerTip.color = Color.red;
- registerTip.GetComponent<TextAutoLanguage>().SetText(48);
- return;
- }
- InputField nickname = GetInputField(registerInNickname);
- if (nickname.text.Trim().Length == 0) {
- registerTip.color = Color.yellow;
- registerTip.GetComponent<TextAutoLanguage>().SetText(49);
- return;
- }
- UserInfos userInfos = GetUserInfos();
- foreach (var userInfo in userInfos.list)
- {
- if (userInfo.user == user.text) {
- registerTip.color = Color.yellow;
- registerTip.GetComponent<TextAutoLanguage>().SetText(50);
- return;
- }
- }
- UserInfo userInfo1 = new UserInfo();
- userInfo1.user = user.text;
- userInfo1.pwd = pwd1.text;
- userInfo1.nickname = nickname.text;
- Transform toggleGroup = registerInGender.transform.Find("ToggleGroup");
- for (int i = 0; i < toggleGroup.childCount; i++) {
- if (toggleGroup.GetChild(i).GetComponent<Toggle>().isOn) {
- userInfo1.gender = i == 0 ? 1 : 2;
- break;
- }
- }
- userInfos.list.Add(userInfo1);
- SetUserInfos(userInfos);
- registerTip.color = Color.green;
- registerTip.GetComponent<TextAutoLanguage>().SetText(51);
- //自动跳转到登录并填写登录信息
- GetInputField(loginInUser).text = userInfo1.user;
- GetInputField(loginInPWD).text = userInfo1.pwd;
- SelectLoginMode(1);
- Invoke("showLoginView", 0.5f);
- }
- public static UserInfos GetUserInfos() {
- string userInfosStr = PlayerPrefs.GetString("UserInfos_" + userInfo_version, "");
- return userInfosStr.Length == 0 ? new UserInfos(): JsonConvert.DeserializeObject<UserInfos>(userInfosStr);
- }
- public static void SetUserInfos(UserInfos userInfos) {
- PlayerPrefs.SetString("UserInfos_" + userInfo_version, JsonConvert.SerializeObject(userInfos));
- }
- public static void SaveUserInfo(UserInfo userInfo) {
- UserInfos userInfos = GetUserInfos();
- for(int i = 0; i < userInfos.list.Count; i++) {
- UserInfo u = userInfos.list[i];
- if (u.user == userInfo.user) {
- userInfos.list[i] = userInfo;
- }
- }
- SetUserInfos(userInfos);
- myUserInfo = userInfo;
- }
- public static void LoadUserInfo(string username, string password)
- {
- UserInfos userInfos = GetUserInfos();
- foreach (var userInfo in userInfos.list)
- {
- if (userInfo.user == username) {
- if (userInfo.pwd == password) {
- myUserInfo = userInfo;
- }
- return;
- }
- }
- }
- }
- public class UserInfos {
- public List<UserInfo> list = new List<UserInfo>();
- }
- [Serializable]
- public class UserInfo {
- public string user = "";
- public string pwd = "";
- public string nickname = "";
- public string phone = "";
- public int gender = 0;
- public string birthday = "";
- public string national = "";
- public string region = "";
- public int integral = 0;
- public int coin = 0;
- public int diamond = 1000;
- public List<PropInfo> bagList = new List<PropInfo>();
- public List<DeviceInfo> deviceList = new List<DeviceInfo>();
- public float arrowAccValue = 16;
- public int timeLimitGameHighestScore = 0;
- public bool deviceCalibrateGuideFinish = false;
- public bool gameRule1GuideFinish = false;
- public bool gameRule2GuideFinish = false;
- public bool openCrossHair = true;
- public int shootLevel = 0;
- public void Save()
- {
- LoginMgr.SaveUserInfo(this);
- }
- }
|