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

1235 lines
47 KiB
C#
Raw Normal View History

2021-03-26 16:36:31 +08:00
using Assets.Scripts;
2021-04-06 15:30:36 +08:00
using Assets.Scripts.Apis;
using Assets.Scripts.Apis.Models;
2021-04-16 17:49:11 +08:00
using Assets.Scripts.UI.Control;
2021-04-06 15:30:36 +08:00
using Assets.Scripts.UI.Prefab.Login;
2021-03-26 16:36:31 +08:00
using DG.Tweening;
2021-03-25 16:55:36 +08:00
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
using System;
using System.Collections;
using System.Collections.Generic;
2021-04-21 11:19:31 +08:00
using System.Linq;
2021-03-25 16:55:36 +08:00
using System.Reflection;
using System.Text;
2021-04-06 15:30:36 +08:00
using System.Text.RegularExpressions;
using System.Threading;
2021-04-16 17:49:11 +08:00
using System.Threading.Tasks;
2021-04-06 15:30:36 +08:00
using System.Timers;
2021-03-25 16:55:36 +08:00
using UnityEngine;
using UnityEngine.Events;
using UnityEngine.EventSystems;
2021-03-25 16:55:36 +08:00
using UnityEngine.SceneManagement;
using UnityEngine.UI;
2021-04-06 15:30:36 +08:00
using ZenFulcrum.EmbeddedBrowser;
//记录小f 是-457和-681
2021-04-06 15:30:36 +08:00
public class QUserInfo
{
public long Id { get; set; }
2021-04-21 16:16:14 +08:00
public string Phone { get; set; }
2021-04-06 15:30:36 +08:00
public string NickName { get; set; }
public string Avatar { get; set; }
public string Cookie { get; set; }
}
public class LoginForm
{
public InputField email { get; set; }
public InputField password { get; set; }
}
2021-04-06 15:30:36 +08:00
public class SignForm
{
2021-04-06 15:30:36 +08:00
//页面1
public InputField email { get; set; }
public InputField captcha { get; set; }
public InputField password { get; set; }
public InputField cpassword { get; set; }
//页面2
public Dropdown years { get; set; }
public Dropdown months { get; set; }
public Dropdown days { get; set; }
public Dropdown genders { get; set; }
public InputField weight { get; set; }
public InputField height { get; set; }
public Dropdown countrys { get; set; }
public Dropdown units { get; set; }
}
2021-03-25 17:53:48 +08:00
public class LoginController : MonoBehaviour
2021-03-25 16:55:36 +08:00
{
private Transform mainContent;
/*初始页面*/
private Transform quickContainer;
private Transform loginContainer;
private Transform signContainer;
2021-04-21 16:16:14 +08:00
//修改高度
Transform LoginBg;
/*初始页面*/
LoginForm loginForm;
[SerializeField] Button loginReturn2;
private Button remember;
/*滑动相关*/
[SerializeField] GameObject loginScrollView;
[SerializeField] GameObject signScrollView;
[SerializeField] GameObject avatarScrollView;
/*滑动相关*/
//注册
2021-04-06 15:30:36 +08:00
private Transform signPage1;
private Transform signPage2;
private Transform signScrollBar;
private SignForm signForm;
private LoginRegOptions regOptions;
2021-04-21 16:16:14 +08:00
private ScrollRect scrollPanel;
private ScrollRect scrollSign;
private ScrollRect scrollAvatar;
2021-04-21 16:16:14 +08:00
private Transform imagexf, imagedf;
2021-04-06 15:30:36 +08:00
//注册主页面
private UserResultModel userResult;
/*微信相关*/
private Browser wxBrowser;
private string wxState;
private Transform wxLogin1;
private Transform wxLogin2;
private Transform wxLogin3;
private JObject wxInfoJson;
private bool wxLock;
/*微信相关*/
private List<QUserInfo> userInfos;
/*退出按钮*/
[SerializeField] Button exit;
/*退出按钮*/
//其他
[SerializeField] RawImage loading;
2021-04-15 15:58:37 +08:00
Transform toolContainer;
2021-04-21 16:16:14 +08:00
Dictionary<string, Selectable> formDict,signFormDict;
2021-04-15 15:58:37 +08:00
2021-04-21 16:16:14 +08:00
public string avatarName { get; private set; }
public Texture avatar;
2021-03-25 16:55:36 +08:00
// Start is called before the first frame update
void Start()
{
Init();
if (loginScrollView != null)
{
scrollPanel = loginScrollView.GetComponent<ScrollRect>();
2021-04-21 16:16:14 +08:00
LoginBg = loginScrollView.transform.Find("Viewport").Find("LoginBg");
2021-04-06 15:30:36 +08:00
mainContent = loginScrollView.transform.Find("Viewport").Find("Content");
2021-04-16 17:49:11 +08:00
quickContainer = mainContent.Find("Empty").Find("FormContainer-Quick");
loginContainer = mainContent.Find("FormContainer-Login").Find("Mask").Find("FormContainer");
signContainer = mainContent.Find("FormContainer-Sign");
}
if (signScrollView != null)
{
scrollSign = signScrollView.GetComponent<ScrollRect>();
2021-04-06 15:30:36 +08:00
var content = signScrollView.transform.Find("Viewport").Find("Content");
signPage1 = content.Find("FirstPage");
2021-04-21 16:16:14 +08:00
UIManager.AddEvent(signPage1.Find("next").GetComponent<Button>().gameObject,
EventTriggerType.PointerClick, (b) => goRegNext());
UIManager.AddEvent(signPage1.Find("BtnModiPass").GetComponent<Button>().gameObject,
EventTriggerType.PointerClick, (b) => goResetPassword());
2021-04-21 16:16:14 +08:00
//signPage1.Find("next").GetComponent<Button>().onClick.AddListener(() => { goRegNext(); });
UIManager.AddEvent(signPage1.Find("Captcha").Find("BtnGet").gameObject,
EventTriggerType.PointerClick,(b)=> GetCaptcha());
//signPage1.Find("Captcha").Find("BtnGet").GetComponent<Button>().onClick.AddListener(GetCaptcha);
2021-04-06 15:30:36 +08:00
var email = signPage1.Find("Email").GetComponent<InputField>();
var captcha = signPage1.Find("Captcha").GetComponent<InputField>();
var password = signPage1.Find("Password").GetComponent<InputField>();
var cpassword = signPage1.Find("CPassword").GetComponent<InputField>();
//第三方登录要用的按钮
2021-04-21 16:16:14 +08:00
UIManager.AddEvent(signPage1.Find("previousThird").GetComponent<Button>().gameObject,
EventTriggerType.PointerClick, (b) => goThirdPrev());
//signPage1.Find("previousThird").GetComponent<Button>().onClick.AddListener(goThirdPrev);
UIManager.AddEvent(signPage1.Find("signThird").GetComponent<Button>().gameObject,
EventTriggerType.PointerClick, (b) => goRegNext(1));
//signPage1.Find("signThird").GetComponent<Button>().onClick.AddListener(() => { goRegNext(1); });
2021-04-06 15:30:36 +08:00
signPage2 = content.Find("NextPage");
2021-04-21 16:16:14 +08:00
UIManager.AddEvent(signPage2.Find("previous").GetComponent<Button>().gameObject,
EventTriggerType.PointerClick, (b) => goRegPrev());
//signPage2.Find("previous").GetComponent<Button>().onClick.AddListener(goRegPrev);
UIManager.AddEvent(signPage2.Find("sign").GetComponent<Button>().gameObject,
EventTriggerType.PointerClick, (b) => goRegEnd());
//signPage2.Find("sign").GetComponent<Button>().onClick.AddListener(goRegEnd);
2021-04-06 15:30:36 +08:00
//注册2 字段
var years = signPage2.Find("Year").GetComponent<Dropdown>();
var months = signPage2.Find("Month").GetComponent<Dropdown>();
var days = signPage2.Find("Day").GetComponent<Dropdown>();
var genders = signPage2.Find("Gender").GetComponent<Dropdown>();
var countrys = signPage2.Find("Country").GetComponent<Dropdown>();
var units = signPage2.Find("Unit").GetComponent<Dropdown>();
2021-04-15 15:58:37 +08:00
regOptions = new LoginRegOptions();
2021-04-06 15:30:36 +08:00
years.options = regOptions.years;
months.options = regOptions.months;
days.options = regOptions.days;
years.captionText.text = "Year";
months.captionText.text = "Month";
days.captionText.text = "Day";
years.onValueChanged.AddListener((int index) =>
{
2021-04-21 16:16:14 +08:00
if (index != -1 && months.value != -1)
2021-04-06 15:30:36 +08:00
{
days.options = regOptions.GetDayOptions(int.Parse(years.captionText.text), int.Parse(months.captionText.text));
days.value = 0;
}
});
months.onValueChanged.AddListener((int index) =>
{
if (index != -1 && years.value != -1)
{
days.options = regOptions.GetDayOptions(int.Parse(years.captionText.text), int.Parse(months.captionText.text));
days.value = 0;
}
});
genders.options = regOptions.genders;
genders.captionText.text = "Gender";
countrys.options = regOptions.countrys;
countrys.value = regOptions.countryDefaultValue;
countrys.onValueChanged.AddListener((int index) =>
{
countrys.transform.Find("RawImage").GetComponent<RawImage>().texture = regOptions.GetCountryImage(index);
});
units.options = regOptions.units;
units.captionText.text = "Display Units";
signForm = new SignForm()
{
email = email,
captcha = captcha,
password = password,
cpassword = cpassword,
weight = signPage2.Find("Weight").GetComponent<InputField>(),
height = signPage2.Find("Height").GetComponent<InputField>(),
years = years,
months = months,
days = days,
genders = genders,
countrys = countrys,
units = units,
};
signScrollBar = signScrollView.transform.Find("Image").Find("Image");
}
2021-04-06 15:30:36 +08:00
if (avatarScrollView != null)
{
2021-04-06 15:30:36 +08:00
scrollAvatar = avatarScrollView.GetComponent<ScrollRect>();
var content = scrollAvatar.transform.Find("Viewport").Find("Content");
2021-04-21 16:16:14 +08:00
foreach (var user in userInfos)
2021-04-06 15:30:36 +08:00
{
var info = Instantiate(Resources.Load<GameObject>("UI/Prefab/Login/QuickUserInfo")).transform;
2021-04-21 16:16:14 +08:00
info.GetComponent<QuickLoginUser>().Initial(user, transform);
2021-04-06 15:30:36 +08:00
info.parent = content;
info.localScale = new Vector3(1, 1, 1);
}
content.Find("empty1").transform.SetSiblingIndex(0);
2021-04-21 16:16:14 +08:00
content.Find("empty2").transform.SetSiblingIndex(content.childCount - 1);
2021-04-06 15:30:36 +08:00
scrollAvatar.GetComponent<QuickLoginScroll>().Initial();
}
2021-04-21 16:16:14 +08:00
if (quickContainer != null)
{
var loginNewAccount = quickContainer.Find("loginNewAccount").GetComponent<Button>();
2021-04-21 16:16:14 +08:00
UIManager.AddEvent(loginNewAccount.gameObject, EventTriggerType.PointerClick, (b) => goLogin());
}
2021-04-21 16:16:14 +08:00
if (loginContainer != null)
{
var returnQuick = loginContainer.Find("returnQuick").GetComponent<Button>();
2021-04-21 16:16:14 +08:00
UIManager.AddEvent(returnQuick.gameObject, EventTriggerType.PointerClick, (b) => ReturnQuick());
var sign = loginContainer.Find("reg").GetComponent<Button>();
2021-04-21 16:16:14 +08:00
UIManager.AddEvent(sign.gameObject, EventTriggerType.PointerClick, (b) => goSign());
remember = loginContainer.Find("rememberButton").GetComponent<Button>();
2021-04-21 11:19:31 +08:00
UIManager.AddEvent(remember.gameObject, EventTriggerType.PointerClick, (b) =>
{
var gou = remember.transform.Find("Gou");
if (gou.gameObject.activeSelf)
{
gou.gameObject.SetActive(false);
}
else
{
gou.gameObject.SetActive(true);
}
});
UIManager.AddEvent(loginContainer.Find("ForgetPassword").gameObject, EventTriggerType.PointerClick, (e) =>goSign(type:1));
var wechatLogin = loginContainer.Find("otherContainer").Find("Wechat").GetComponent<Button>();
2021-04-21 16:16:14 +08:00
UIManager.AddEvent(wechatLogin.gameObject, EventTriggerType.PointerClick, (b) =>
2021-04-06 15:30:36 +08:00
{
if (wxLock) return;
wxLock = true;
wxState = (DateTime.Now.ToUniversalTime().Ticks / 10000 * new System.Random().Next(1, 5)).ToString();
2021-04-06 15:30:36 +08:00
wxBrowser.Url = $"https://open.weixin.qq.com/connect/qrconnect?appid={App.WxAppId}&redirect_uri=https%3A%2F%2Fwx.powerfun.com.cn%2FNoAuth%2Fv1%2FWxWebLogin&response_type=code&scope=snsapi_login&state={wxState}#wechat_redirect";
//AdjustWxQrCode();
2021-04-16 17:49:11 +08:00
var wx1 = mainContent.Find("FormContainer-Login").Find("Mask").Find("FormContainer-wx1");
2021-04-06 15:30:36 +08:00
wx1.gameObject.SetActive(true);
Debug.Log(178 + "已经开启" + wx1.gameObject.activeSelf);
2021-04-16 17:49:11 +08:00
//wx1.GetComponent<CanvasGroup>().DOFade(1, 0.8f).onComplete = () => { wxLock = false; };
wx1.DOLocalMoveY(0, 0.3f).onComplete = () => { wxLock = false; };
2021-04-06 15:30:36 +08:00
});
var login = loginContainer.Find("login").GetComponent<Button>();
2021-04-21 16:16:14 +08:00
UIManager.AddEvent(login.gameObject, EventTriggerType.PointerClick, (b) => Submit());
//login.onClick.AddListener(Submit);
loginForm = new LoginForm()
{
email = loginContainer.Find("phone").GetComponent<InputField>(),
password = loginContainer.Find("pwd").GetComponent<InputField>()
};
2021-04-06 15:30:36 +08:00
}
//if (loginReturn2 != null)
//{
// loginReturn2.onClick.AddListener(goLoginReturn2);
//}
2021-04-21 16:16:14 +08:00
if (signContainer != null)
{
var loginr2 = signContainer.Find("loginr2").GetComponent<Button>();
2021-04-21 11:19:31 +08:00
UIManager.AddEvent(loginr2.gameObject, EventTriggerType.PointerClick, (b) =>
{
goLoginReturn2();
});
}
if (exit != null)
{
2021-04-21 11:19:31 +08:00
UIManager.AddEvent(exit.gameObject, EventTriggerType.PointerClick, (b) =>
{
2021-04-28 15:21:06 +08:00
UIManager.ShowConfirm("Quit", "Do you want to quit PowerFun?", () =>
{
Application.Quit();
});
2021-04-21 11:19:31 +08:00
});
}
2021-04-21 16:16:14 +08:00
2021-04-16 17:49:11 +08:00
wxLogin1 = mainContent.Find("FormContainer-Login").Find("Mask").Find("FormContainer-wx1");
2021-04-06 15:30:36 +08:00
if (wxLogin1 != null)
{
2021-04-21 11:19:31 +08:00
UIManager.AddEvent(wxLogin1.Find("Image").gameObject, EventTriggerType.PointerClick, (b) =>
{
wxLock = true;
2021-04-21 16:16:14 +08:00
wxBrowser.LoadHTML("<div/>");
//wxBrowser.Url = "chrome://version/";
2021-04-21 11:19:31 +08:00
wxLogin1.DOLocalMoveY(-573, 0.3f).onComplete = () =>
{
wxLock = false;
wxLogin1.gameObject.SetActive(false);
};
});
2021-04-06 15:30:36 +08:00
wxBrowser = wxLogin1.Find("Browser (GUI)").GetComponent<Browser>();
if (wxBrowser != null)
{
// wxBrowser.EvalJS(@"Object.defineProperties(Navigator.prototype, {
// language: {
// value: 'zh-CN',
// configurable: false,
// enumerable: true,
// writable: false
// },
// languages: {
// value: ['zh-CN','en','zh'],
// configurable: false,
// enumerable: true,
// writable: false
// }
//});");
wxBrowser.onTextureUpdated += OnUserScan;
//browser.Zoom = 0.5f;
//browser.
}
}
2021-04-21 16:16:14 +08:00
2021-04-06 15:30:36 +08:00
wxLogin2 = mainContent.Find("FormContainer-wx2");
2021-04-21 16:16:14 +08:00
if (wxLogin2 != null)
2021-04-06 15:30:36 +08:00
{
2021-04-21 11:19:31 +08:00
UIManager.AddEvent(wxLogin2.Find("return").gameObject, EventTriggerType.PointerClick, (b) =>
{
wxLogin2.gameObject.SetActive(false);
//wxLogin3.gameObject.SetActive(false);
pageNums = 4;
Canvas.ForceUpdateCanvases();
StartScrollPanel(1);
});
2021-04-21 16:16:14 +08:00
wxLogin2.Find("Next").GetComponent<Button>().onClick.AddListener(() =>
2021-04-06 15:30:36 +08:00
{
this.goSign(false);
});
}
wxLogin3 = mainContent.Find("FormContainer-wx3");
if (wxLogin3 != null)
{
2021-04-21 11:19:31 +08:00
UIManager.AddEvent(wxLogin3.Find("return").gameObject, EventTriggerType.PointerClick, (b) =>
{
StartScrollPanel(1);
//if (signContainer.gameObject.activeSelf)
//{
// StartScrollPanel(3);
//}
//else
//{
// signContainer.gameObject.SetActive(true);
// pageNums = 4;
// //wxLogin3.gameObject.SetActive(false);
// StartScrollPanel(1);
//}
2021-04-21 11:19:31 +08:00
});
UIManager.AddEvent(wxLogin3.Find("rememberButton").gameObject, EventTriggerType.PointerClick, (b) =>
{
var gou = wxLogin3.Find("rememberButton").Find("Gou").gameObject;
gou.SetActive(!gou.activeSelf);
});
2021-04-21 16:16:14 +08:00
UIManager.AddEvent(wxLogin3.Find("Next").gameObject, EventTriggerType.PointerClick, (b) =>
2021-04-06 15:30:36 +08:00
{
goMain(wxLogin3.Find("rememberButton").Find("Gou"));
});
}
imagexf = transform.Find("Panel").Find("LoginContainer").Find("Imagexf");
2021-04-16 17:49:11 +08:00
imagedf = transform.Find("Panel").Find("LoginContainer").Find("Imagedf");
2021-04-15 15:58:37 +08:00
toolContainer = transform.Find("Panel").Find("ToolContainer");
2021-04-21 16:16:14 +08:00
if (toolContainer != null)
2021-04-15 15:58:37 +08:00
{
2021-04-21 11:19:31 +08:00
UIManager.AddEvent(toolContainer.Find("Setting").gameObject, EventTriggerType.PointerClick, (b) =>
{
UIManager.ShowSettingModal();
});
//toolContainer.Find("Setting").GetComponent<Button>().onClick.AddListener(() =>
//{
// UIManager.ShowSettingModal();
//});
UIManager.AddEvent(toolContainer.Find("Msg").gameObject, EventTriggerType.PointerClick, (b) =>
2021-04-16 17:49:11 +08:00
{
UIManager.ShowNewsModal();
});
2021-04-21 11:19:31 +08:00
//toolContainer.Find("Msg").GetComponent<Button>().onClick.AddListener(() =>
//{
// UIManager.ShowNewsModal();
//});
2021-04-15 15:58:37 +08:00
}
2021-04-21 16:16:14 +08:00
if (userInfos.Count == 0) goLoginImmediately();
formDict = new Dictionary<string, Selectable>()
{
{"Phone",loginForm.email },
{"Pwd",loginForm.password },
};
loginForm.email.onEndEdit.AddListener(async (s) =>
{
if (!string.IsNullOrEmpty(s) && avatarName!=s)
{
var r = await ConfigHelper.userApi.GetHeadImg(s);
if (!string.IsNullOrEmpty(r))
{
Utils.DisplayImage(StartCoroutine, loginContainer.Find("Avatar").GetComponent<RawImage>(), r);
avatarName = s;
}
else
{
loginContainer.Find("Avatar").GetComponent<RawImage>().texture = avatar;
}
}
});
signFormDict = new Dictionary<string, Selectable>
{
{ "Phone",signForm.email},
{ "Captcha",signForm.captcha},
{ "Pwd",signForm.password},
{ "CPwd",signForm.cpassword},
2021-04-21 16:16:14 +08:00
{ "Years",signForm.years},
{ "Months",signForm.months},
{ "Days",signForm.days},
};
avatar = Resources.Load<Texture>("Images/New Account");
transform.Find("Panel").Find("Version").GetComponent<Text>().text = $"V{App.AppVersion}";
}
async void Init()
{
GetRotateImage();
UIManager.Instance.ModalsPanel = this.transform.Find("ModalPanel").GetComponent<PFUIPanel>();
userInfos = UIManager.Instance.userInfos;
App.DefaultRotateTexture = Utils.ReadTextureFromPlayerPrefs("rotateImage");
var notifyId = PlayerPrefs.GetInt("notifyId");
var r = await ConfigHelper.userApi.GetNotify();
if (r.result)
{
App.notifyContent = r.data.Value<string>("Content");
if (r.data.Value<int>("Id") != notifyId)
{
UIManager.ShowNewsModal();
PlayerPrefs.SetInt("notifyId", r.data.Value<int>("Id"));
}
//content.GetComponent<Text>().text
}
2021-04-06 15:30:36 +08:00
}
async void GetRotateImage()
{
if (!App.TextureCache.ContainsKey("rotateImage"))
{
var locationInfo = await ConfigHelper.thirdPartApi.GetLocationInfo();
App.latitude = locationInfo.latitude;
App.longitude = locationInfo.longitude;
//if (locationInfo.status == 0)
//{
// Debug.Log(locationInfo.address);
// Utils.DownloadImageToLocal(StartCoroutine,
// $"https://api.mapbox.com/styles/v1/mapbox/dark-v10/static/{locationInfo.content.point.x},{locationInfo.content.point.y},12.14,0/1280x1280?access_token=pk.eyJ1IjoiYW5keXNqdCIsImEiOiJja2ZhajE5OGwwamRiMnltcW96bHk0ZWFuIn0.GvKanc6UveWSvIjS9HfBPA",
// "rotateImage");
//}
//else
//{
// Debug.Log(locationInfo.message);
//}
Debug.Log(JsonConvert.SerializeObject(locationInfo));
var i = await ConfigHelper.thirdPartApi.GetMapImage(locationInfo);
var t = new Texture2D(2, 2);
if (t.LoadImage(Utils.StreamToBytes(i)))
{
Debug.Log("成功");
App.TextureCache["rotateImage"] = t;
Utils.WriteTextureToPlayerPrefs("rotateImage", t);
}
//Debug.Log(locationInfo.country);
//Utils.DownloadImageToLocal(StartCoroutine,
//$"https://api.mapbox.com/styles/v1/mapbox/dark-v10/static/{locationInfo.longitude},{locationInfo.latitude},12.14,0/1280x1280?access_token=pk.eyJ1IjoiYW5keXNqdCIsImEiOiJja2ZhajE5OGwwamRiMnltcW96bHk0ZWFuIn0.GvKanc6UveWSvIjS9HfBPA",
//"rotateImage");
}
}
/// <summary>
/// 执行js 修改微信登录页样式
/// </summary>
2021-04-21 16:16:14 +08:00
private void AdjustWxQrCode()
2021-04-06 15:30:36 +08:00
{
wxBrowser.EvalJS(@"
2021-04-21 16:16:14 +08:00
console.log(439,document.body.style.padding);
let time = null;
let f = ()=>{
console.log(442);
document.getElementsByClassName('qrcode')[0].style.marginTop = 0;
document.getElementsByClassName('title')[0].style.display = 'none';
document.body.style.background = '#272732';
document.body.style.overflow = 'hidden';
document.body.style.transformOrigin = 'top left';
document.body.style.transform = 'scale(0.85106382978)';
document.body.style.padding = '0';
if(document.body.style.padding === '0px' && time!=null){
clearInterval(time);
}
}
f();
if(document.body.style.padding !== '0px'){
time = setInterval(f,500);
}");
2021-04-06 15:30:36 +08:00
}
//浏览器加载回调
private async void OnUserScan()
{
if (wxBrowser.Url.Contains("qrconnect"))
{
AdjustWxQrCode();
}
Debug.Log(wxBrowser.Url);
var rgx = Regex.Match(wxBrowser.Url, @"https\:\/\/wx.powerfun.com.cn/NoAuth/v1/WxWebLogin\?code=(.*?)&state=(.*?)$");
var groups = rgx.Groups;
if (groups.Count == 3)
{
wxLogin1.gameObject.SetActive(false);
var state = groups[2].Value;
if (state == wxState)
{
var acjson = await ConfigHelper.thirdPartApi.GetWxAccessToken(groups[1].Value);
var infojson = await ConfigHelper.thirdPartApi.GetWxUserInfo(
acjson.Value<string>("access_token"), acjson.Value<string>("openid"));
wxInfoJson = infojson;
string unionId = wxInfoJson.Value<string>("unionid"),
openId = wxInfoJson.Value<string>("openid");
var r = await ConfigHelper.userApi.OnWebWxLoginCheckUnionId(unionId, openId);
if (r.result)
{
JObject data = JObject.FromObject(r.data);
2021-04-21 16:16:14 +08:00
if (data.Value<string>("success") != null && data.Value<string>("success") == "False")
2021-04-06 15:30:36 +08:00
{
wxLogin2.gameObject.SetActive(true);
Utils.DisplayImage(StartCoroutine,
wxLogin2.Find("Avatar").GetComponent<RawImage>(),
wxInfoJson.Value<string>("headimgurl"));
wxLogin2.Find("NickName").GetComponent<Text>().text = wxInfoJson.Value<string>("nickname");
wxLogin3.gameObject.SetActive(true);
Utils.DisplayImage(StartCoroutine,
wxLogin3.Find("Avatar").GetComponent<RawImage>(),
wxInfoJson.Value<string>("headimgurl"));
wxLogin3.Find("NickName").GetComponent<Text>().text = wxInfoJson.Value<string>("nickname");
pageNums = 5;
//this.goSign();
StartScrollPanel(2);
}
else
{
2021-04-28 18:41:54 +08:00
RefreshWx3(data.ToObject<UserResultModel>(),1);
2021-04-06 15:30:36 +08:00
wxLogin3.gameObject.SetActive(true);
//Utils.DisplayImage(StartCoroutine,
//wxLogin3.Find("Avatar").GetComponent<RawImage>(),
//wxInfoJson.Value<string>("headimgurl"));
//wxLogin3.Find("NickName").GetComponent<Text>().text = wxInfoJson.Value<string>("nickname");
2021-04-06 15:30:36 +08:00
signContainer.gameObject.SetActive(false);
pageNums = 3;
//this.goSign();
StartScrollPanel(2);
}
}
else
{
Utils.showToast(gameObject, r.errMsg);
}
}
}
}
private void goThirdNext()
{
this.StartScrollPanel(4);
}
2021-04-06 15:30:36 +08:00
private void goThirdPrev()
{
this.StartScrollPanel(2);
}
private void OnDestroy()
{
}
#region
2021-04-06 15:30:36 +08:00
int time = 0;
float timer = 0f;
bool startCaptcha = false;
async void GetCaptcha()
{
var btn = signPage1.Find("Captcha").Find("BtnGet");
var btnText = signPage1.Find("Captcha").Find("BtnGet").Find("Text").GetComponent<Text>();
2021-04-21 16:16:14 +08:00
var Email = signForm.email;
2021-04-06 15:30:36 +08:00
var r = await ConfigHelper.userApi.GetCaptcha(Email.text);
//Timer t = new Ti
if (r.result)
{
2021-04-21 16:16:14 +08:00
if (r.data.Value<bool>("isExist") && pageNums == 5)
{
HidePassword();
}
2021-04-06 15:30:36 +08:00
time = 60;
btnText.text = $"Again({time})";
System.Timers.Timer timer = new System.Timers.Timer();
btn.GetComponent<Button>().enabled = false;
2021-04-21 16:16:14 +08:00
btn.GetComponent<Button>().interactable = false;
2021-04-06 15:30:36 +08:00
startCaptcha = true;
//timer.Interval = 1000;
//timer.AutoReset = true;
//timer.Elapsed += new ElapsedEventHandler(CaptchaTimerTick);
//timer.Enabled = true;
//btnGet.
}
2021-04-21 16:16:14 +08:00
else
2021-04-06 15:30:36 +08:00
{
Utils.showToast(gameObject, r.errMsg);
}
}
#endregion
2021-04-21 16:16:14 +08:00
void CaptchaTimerTick()
2021-04-06 15:30:36 +08:00
{
timer -= Time.deltaTime;
if (timer <= 0)
{
var btn = signPage1.Find("Captcha").Find("BtnGet");
var btnText = signPage1.Find("Captcha").Find("BtnGet").Find("Text").GetComponent<Text>();
btnText.text = $"Again({time--})";
if (time < 0)
{
btnText.text = "Get";
btn.GetComponent<Button>().enabled = true;
2021-04-21 16:16:14 +08:00
btn.GetComponent<Button>().interactable = true;
2021-04-06 15:30:36 +08:00
startCaptcha = false;
//timer.Stop();
}
timer = 1.0f;
}
}
2021-04-21 16:16:14 +08:00
private void goRegPrev()
{
2021-04-23 15:36:18 +08:00
signForm.email.text = "";
signForm.password.text = "";
signForm.captcha.text = "";
signForm.cpassword.text = "";
StartScrollSign(0);
}
2021-04-06 15:30:36 +08:00
//0-普通 1-微信
private async void goRegNext(int signType = 0)
{
2021-04-06 15:30:36 +08:00
var Email = signForm.email;
var Captcha = signForm.captcha;
var Password = signForm.password;
var CPassword = signForm.cpassword;
2021-04-21 16:16:14 +08:00
if (Password.text != CPassword.text)
{
Utils.SetValidate(signFormDict, JArray.FromObject(new object[]
{
new { Field="Pwd"},
new { Field="CPwd"},
}));
2021-04-28 15:21:06 +08:00
Utils.showToast(gameObject, "Two password entries are inconsistent");//两次密码输入不一致
return;
}
2021-04-06 15:30:36 +08:00
//JsonConvert
2021-04-21 16:16:14 +08:00
JsonResult<object> r = null;
2021-04-06 15:30:36 +08:00
if (signType == 0)
{
r = await ConfigHelper.userApi.Register(Email.text, Password.text, Captcha.text);
}
else if (signType == 1)
{
r = await ConfigHelper.userApi.OnWebWxLogin(Email.text,
Captcha.text,
wxInfoJson.Value<string>("unionid"),
wxInfoJson.Value<string>("openid"),
wxInfoJson.Value<string>("headimgurl"),
wxInfoJson.Value<string>("nickname"),
wxInfoJson.Value<int>("sex"),
Password.text);
}
2021-04-21 16:16:14 +08:00
if (r != null && r.result)
2021-04-06 15:30:36 +08:00
{
2021-04-21 16:16:14 +08:00
var u = JObject.FromObject(r.data).ToObject<UserResultModel>();
2021-04-28 18:41:54 +08:00
RefreshWx3(u, signType);
2021-04-16 17:49:11 +08:00
LoadInfo();
2021-04-06 15:30:36 +08:00
StartScrollSign(1);
}
2021-04-21 16:16:14 +08:00
else
2021-04-06 15:30:36 +08:00
{
2021-04-21 16:16:14 +08:00
var errorList = JArray.FromObject(r.data);
2021-04-23 15:36:18 +08:00
Utils.SetValidate(signFormDict, errorList);
Utils.showToast(gameObject, r.errMsg);
}
}
2021-04-23 15:36:18 +08:00
async void goRegNextWithoutPass()
{
var Email = signForm.email;
var Captcha = signForm.captcha;
var r = await ConfigHelper.userApi.OnWebWxLogin(Email.text,
Captcha.text,
wxInfoJson.Value<string>("unionid"),
wxInfoJson.Value<string>("openid"),
wxInfoJson.Value<string>("headimgurl"),
wxInfoJson.Value<string>("nickname"),
wxInfoJson.Value<int>("sex"),
"");
if (r.result)
{
2021-04-21 16:16:14 +08:00
var u = JObject.FromObject(r.data).ToObject<UserResultModel>();
2021-04-28 18:41:54 +08:00
RefreshWx3(u,1);
StartScrollPanel(4);
2021-04-06 15:30:36 +08:00
}
else
{
Utils.showToast(gameObject, r.errMsg);
}
}
/// <summary>
/// 重置密码逻辑
/// </summary>
async void goResetPassword()
{
var Email = signForm.email;
var Captcha = signForm.captcha;
var Password = signForm.password;
var CPassword = signForm.cpassword;
if (Password.text != CPassword.text)
{
Utils.SetValidate(signFormDict, JArray.FromObject(new object[]
{
new { Field="Pwd"},
new { Field="CPwd"},
}));
2021-04-28 15:21:06 +08:00
Utils.showToast(gameObject, "Two password entries are inconsistent");//两次密码输入不一致
return;
}
var r = await ConfigHelper.userApi.ResetPassword(Email.text, Captcha.text, Password.text);
if (r.result)
{
2021-04-28 15:21:06 +08:00
Utils.showToast(gameObject, "Success",type:1);
goLoginReturn2();
}
else
{
Utils.showToast(gameObject, r.errMsg);
}
}
2021-04-28 18:41:54 +08:00
void RefreshWx3(UserResultModel data,int type)
{
2021-04-28 18:41:54 +08:00
if (string.IsNullOrEmpty(data.WxHeadImg))
{
wxLogin3.Find("Avatar").GetComponent<RawImage>().texture = Resources.Load<Texture>("Images/icon-1024");
}
else
{
Utils.DisplayImage(StartCoroutine,
wxLogin3.Find("Avatar").GetComponent<RawImage>(),
data.WxHeadImg);
2021-04-28 18:41:54 +08:00
}
wxLogin3.Find("Wx").gameObject.SetActive(type == 1);
wxLogin3.Find("NickName").GetComponent<Text>().text = data.Nickname;
userResult = data;
2021-04-06 15:30:36 +08:00
}
/// <summary>
/// 去最后一页准备进入主场景
/// </summary>
2021-04-16 17:49:11 +08:00
async void goRegEnd()
2021-04-06 15:30:36 +08:00
{
2021-04-21 16:16:14 +08:00
if (!await UpdateInfo()) return;
if (pageNums == 5)
2021-04-06 15:30:36 +08:00
{
this.StartScrollPanel(4);
}
2021-04-16 17:49:11 +08:00
else
{
2021-04-19 15:44:11 +08:00
this.StartScrollPanel(3);
2021-04-16 17:49:11 +08:00
}
2021-04-06 15:30:36 +08:00
//throw new NotImplementedException();
}
/// <summary>
/// 加载信息
/// </summary>
2021-04-21 16:16:14 +08:00
void LoadInfo()
2021-04-16 17:49:11 +08:00
{
var _days = signForm.days.GetComponent<PFUIDropdown>();
var _months = signForm.months.GetComponent<PFUIDropdown>();
var _years = signForm.years.GetComponent<PFUIDropdown>();
2021-04-16 17:49:11 +08:00
var _genders = signForm.genders.GetComponent<PFUIDropdown>();
var _countrys = signForm.countrys.GetComponent<PFUIDropdown>();
var _units = signForm.units.GetComponent<PFUIDropdown>();
var _weight = signForm.weight.GetComponent<PFUIInputField>();
var _height = signForm.height.GetComponent<PFUIInputField>();
if (userResult.Birthday.HasValue)
{
_days.SelectValue(userResult.Birthday.Value.Day.ToString());
_months.SelectValue(userResult.Birthday.Value.Month.ToString());
_years.SelectValue(userResult.Birthday.Value.Year.ToString());
}
2021-04-21 16:16:14 +08:00
_genders.SelectIndex(userResult.Sex - 1);
2021-04-16 17:49:11 +08:00
_countrys.SelectIndex(UIManager.Instance.loginRegOptions.GetCountryIndexByName(userResult.Country));
_units.SelectIndex(userResult.Unit);
_weight.Text = userResult.Weight.ToString();
_height.Text = userResult.Height.ToString();
}
/// <summary>
/// 注册页2 修改信息
/// </summary>
/// <returns></returns>
2021-04-21 16:16:14 +08:00
async Task<bool> UpdateInfo()
2021-04-16 17:49:11 +08:00
{
if (userResult == null) return false;
var _days = signForm.days.GetComponent<PFUIDropdown>();
var _months = signForm.months.GetComponent<PFUIDropdown>();
var _years = signForm.years.GetComponent<PFUIDropdown>();
var _genders = signForm.genders.GetComponent<PFUIDropdown>();
var _countrys = signForm.countrys.GetComponent<PFUIDropdown>();
var _units = signForm.units.GetComponent<PFUIDropdown>();
var _weight = signForm.weight.GetComponent<PFUIInputField>();
var _height = signForm.height.GetComponent<PFUIInputField>();
2021-04-21 16:16:14 +08:00
if (signForm.years.value != -1 && signForm.months.value != -1 && signForm.days.value != -1)
2021-04-16 17:49:11 +08:00
{
userResult.Birthday = new DateTime(int.Parse(_years.SelectedItem), int.Parse(_months.SelectedItem), int.Parse(_days.SelectedItem));
}
2021-04-21 16:16:14 +08:00
else
{
Utils.SetValidate(signFormDict, JArray.FromObject(new object[]
{
new { Field = "Years", ErrMsg = "" },
new { Field = "Months", ErrMsg = "" },
new { Field = "Days", ErrMsg = "" }
}));
2021-04-28 15:21:06 +08:00
Utils.showToast(gameObject, "Please select birthday");//请选择生日
2021-04-21 16:16:14 +08:00
return false;
}
2021-04-16 17:49:11 +08:00
userResult.Sex = _genders.SelectedIndex + 1;
userResult.Country = UIManager.Instance.loginRegOptions.GetCountryName(_countrys.SelectedIndex);
userResult.Unit = _units.SelectedIndex;
userResult.Weight = int.Parse(_weight.Text);
userResult.Height = int.Parse(_height.Text);
2021-04-21 16:16:14 +08:00
if (string.IsNullOrEmpty(userResult.Nickname))
2021-04-19 15:44:11 +08:00
{
userResult.Nickname = userResult.Phone;
}
2021-04-16 17:49:11 +08:00
var r = await ConfigHelper.userApi.Update(userResult);
return r.result;
//userResult.Birthday.v
}
/// <summary>
/// 微信2/注册返回登录
/// </summary>
private void goLoginReturn2()
{
2021-04-06 15:30:36 +08:00
if (wxLogin2.gameObject.activeSelf) wxLogin2.gameObject.SetActive(false);
2021-04-19 15:44:11 +08:00
//if (wxLogin3.gameObject.activeSelf) wxLogin3.gameObject.SetActive(false);
pageNums = 4;
2021-04-06 15:30:36 +08:00
Canvas.ForceUpdateCanvases();
this.StartScrollPanel(1);
}
/// <summary>
/// 立刻跳到登录页并且返回按钮强行失效
/// </summary>
private void goLoginImmediately()
{
imagedf.localPosition = new Vector3(-580, -34, 0);
imagexf.localPosition = new Vector3(0, -669, 0);
LoginBg.localPosition = Vector3.zero;
LoginBg.GetComponent<RectTransform>().sizeDelta = new Vector2(360, 573);
var scrollValue = 1f / (pageNums - 1);
var value = 1 * scrollValue;
scrollPanel.horizontalNormalizedPosition = value;
loginContainer.Find("returnQuick").GetComponent<Button>().gameObject.SetActive(false);
}
/// <summary>
/// 返回快速登录页
/// </summary>
2021-04-21 16:16:14 +08:00
void ReturnQuick()
{
if (imagexf != null)
{
2021-04-16 17:49:11 +08:00
imagexf.DOLocalMoveY(-575, 0.3f);
}
if (imagedf != null)
{
imagedf.DOLocalMoveY(-128, 0.3f);
}
2021-04-21 16:16:14 +08:00
if (LoginBg != null)
{
LoginBg.GetComponent<RectTransform>().DOSizeDelta(new Vector2(360, 385), 0.3f);
LoginBg.GetComponent<RectTransform>().DOLocalMoveY(-94, 0.3f);
}
this.StartScrollPanel(0);
}
/// <summary>
/// 去登录页
/// </summary>
/// <param name="noReturn"></param>
2021-04-21 16:16:14 +08:00
public void goLogin(bool noReturn = false)
{
2021-04-21 16:16:14 +08:00
if (imagexf != null)
{
2021-04-16 17:49:11 +08:00
imagexf.DOLocalMoveY(-669, 0.3f);
}
if (imagedf != null)
{
imagedf.DOLocalMoveY(-34, 0.3f);
}
2021-04-21 16:16:14 +08:00
if (LoginBg != null)
{
LoginBg.GetComponent<RectTransform>().DOSizeDelta(new Vector2(360, 573), 0.3f);
LoginBg.GetComponent<RectTransform>().DOLocalMoveY(0, 0.3f);
}
//DOTween.To(() => o, x => o = x, t, 0.3f);
this.StartScrollPanel(1);
if (noReturn)
2021-04-21 16:16:14 +08:00
{
loginContainer.Find("returnQuick").GetComponent<Button>().gameObject.SetActive(false);
}
}
void HidePassword()
2021-04-21 16:16:14 +08:00
{
signPage1.Find("Password").gameObject.SetActive(false);
signPage1.Find("CPassword").gameObject.SetActive(false);
UIManager.RemoveEvent(signPage1.Find("signThird").gameObject);
UIManager.AddEvent(signPage1.Find("signThird").gameObject, EventTriggerType.PointerClick, (b) =>
{
goRegNextWithoutPass();
});
//signPage1.Find("signThird").GetComponent<Button>().onClick.RemoveAllListeners();
//signPage1.Find("signThird").GetComponent<Button>().onClick.AddListener(goRegNextWithoutPass);
}
void ShowPassword()
{
signForm.email.text = "";
signForm.password.text = "";
signForm.captcha.text = "";
signForm.cpassword.text = "";
signPage1.Find("Password").gameObject.SetActive(true);
signPage1.Find("CPassword").gameObject.SetActive(true);
UIManager.RemoveEvent(signPage1.Find("signThird").gameObject);
UIManager.AddEvent(signPage1.Find("signThird").gameObject, EventTriggerType.PointerClick, (b) =>
{
goRegNext(1);
});
//signPage1.Find("signThird").GetComponent<Button>().onClick.RemoveAllListeners();
//signPage1.Find("signThird").GetComponent<Button>().onClick.AddListener(() => { ; });
}
/// <summary>
///
/// </summary>
/// <param name="isAccount"></param>
/// <param name="type">0 注册 1 忘记密码</param>
void goSign(bool isAccount = true,int type = 0)
{
2021-04-06 15:30:36 +08:00
if (!isAccount)
{
pageNums = 5;
//wxLogin2.gameObject.SetActive(false);
signPage1.Find("next").gameObject.SetActive(false);
signPage1.Find("BtnModiPass").gameObject.SetActive(false);
2021-04-06 15:30:36 +08:00
signPage1.Find("previousThird").gameObject.SetActive(true);
signPage1.Find("signThird").gameObject.SetActive(true);
ShowPassword();
2021-04-06 15:30:36 +08:00
this.StartScrollPanel(3);
this.StartScrollSign(0);
}
else
{
if (type == 0)
{
pageNums = 4;
signContainer.Find("signText").GetComponent<Text>().text = "SIGN UP";
wxLogin2.gameObject.SetActive(false);
signPage1.Find("next").gameObject.SetActive(true);
signPage1.Find("BtnModiPass").gameObject.SetActive(false);
signPage1.Find("previousThird").gameObject.SetActive(false);
signPage1.Find("signThird").gameObject.SetActive(false);
ShowPassword();
this.StartScrollPanel(2);
this.StartScrollSign(0);
}
else
{
pageNums = 4;
signContainer.Find("signText").GetComponent<Text>().text = "RESET PASSWORD";
wxLogin2.gameObject.SetActive(false);
signPage1.Find("next").gameObject.SetActive(false);
signPage1.Find("BtnModiPass").gameObject.SetActive(true);
signPage1.Find("previousThird").gameObject.SetActive(false);
signPage1.Find("signThird").gameObject.SetActive(false);
ShowPassword();
this.StartScrollPanel(2);
this.StartScrollSign(0);
}
2021-04-06 15:30:36 +08:00
}
}
/// <summary>
/// 登录/注册完成,去首页
/// </summary>
/// <param name="gou"></param>
2021-04-06 15:30:36 +08:00
void goMain(Transform gou)
{
var data = userResult;
if (data == null) return;
//ConfigHelper.CurrentUser = res.data;
2021-04-15 15:58:37 +08:00
if (gou != null && gou.gameObject.activeSelf)
2021-04-16 17:49:11 +08:00
{
SaveInfo(data);
//PlayerPrefs.SetString("UserInfos", JsonConvert.SerializeObject(userInfos));
}
else
2021-04-06 15:30:36 +08:00
{
2021-04-15 15:58:37 +08:00
var u = userInfos.Find(x => x.Id == data.Id);
2021-04-16 17:49:11 +08:00
if (u != null)
2021-04-06 15:30:36 +08:00
{
2021-04-16 17:49:11 +08:00
userInfos.Remove(u);
2021-04-15 15:58:37 +08:00
}
2021-04-16 17:49:11 +08:00
UIManager.Instance.userInfos = userInfos;
2021-04-21 11:19:31 +08:00
UIManager.Instance.userInfoIndex = 0;
2021-04-06 15:30:36 +08:00
}
App.CurrentUser = data;
App.rideSetting.sensitivity = data.Sensitivity;
2021-04-06 15:30:36 +08:00
SceneManager.LoadScene("MainScene");
2021-03-25 16:55:36 +08:00
}
/// <summary>
/// 缓存打钩的用户信息
/// </summary>
/// <param name="data"></param>
2021-04-16 17:49:11 +08:00
public void SaveInfo(UserResultModel data)
{
2021-04-21 11:19:31 +08:00
var index = userInfos.FindIndex(x => x.Id == data.Id);
if (index == -1)
2021-04-16 17:49:11 +08:00
{
userInfos.Add(new QUserInfo
{
Id = data.Id,
NickName = data.Nickname,
Avatar = data.WxHeadImg,
2021-04-21 16:16:14 +08:00
Cookie = data.cookie,
Phone = data.Phone
2021-04-16 17:49:11 +08:00
});
2021-04-21 11:19:31 +08:00
index = userInfos.Count - 1;
2021-04-16 17:49:11 +08:00
}
else
{
2021-04-21 11:19:31 +08:00
var u = userInfos[index];
u.Id = data.Id;
u.NickName = data.Nickname;
u.Avatar = data.WxHeadImg;
u.Cookie = data.cookie;
2021-04-21 16:16:14 +08:00
u.Phone = data.Phone;
2021-04-21 11:19:31 +08:00
//userInfos.Insert(0, new QUserInfo
//{
// Id = data.Id,
// NickName = data.Nickname,
// Avatar = data.WxHeadImg,
// Cookie = data.cookie
//});
//userInfos.Remove(u);
2021-04-16 17:49:11 +08:00
}
UIManager.Instance.userInfos = userInfos;
2021-04-21 11:19:31 +08:00
UIManager.Instance.userInfoIndex = index;
2021-04-16 17:49:11 +08:00
}
/// <summary>
/// 登录提交
/// </summary>
2021-03-25 16:55:36 +08:00
async void Submit()
{
2021-04-21 16:16:14 +08:00
var res = await ConfigHelper.userApi.LoginV1(loginForm.email.text, loginForm.password.text, "");
2021-03-25 16:55:36 +08:00
//var res = await NoAuthApi.Login(phone.text, pwd.text);
if (res.result)
{
2021-04-21 16:16:14 +08:00
userResult = JObject.FromObject(res.data).ToObject<UserResultModel>();
2021-04-06 15:30:36 +08:00
goMain(remember.transform.Find("Gou"));
2021-03-25 16:55:36 +08:00
}
else
{
2021-04-23 15:36:18 +08:00
if (res.data != null)
{
var errorList = JArray.FromObject(res.data);
Utils.SetValidate(formDict, errorList);
}
2021-04-16 17:49:11 +08:00
Utils.showToast(gameObject, res.errMsg);
2021-03-25 16:55:36 +08:00
}
}
// Update is called once per frame
void Update()
{
//Debug.Log($"{phone.isFocused}, ${pwd != null}, ${Input.GetKeyDown(KeyCode.Tab)}");
if (Input.GetKeyDown(KeyCode.Tab) && loginForm !=null && loginForm.email.isFocused && loginForm.password != null)
2021-03-25 16:55:36 +08:00
{
loginForm.password.ActivateInputField();
2021-03-25 16:55:36 +08:00
}
2021-04-25 15:33:17 +08:00
if (Input.GetKeyDown(KeyCode.KeypadEnter) || Input.GetKeyDown(KeyCode.Return))
2021-04-21 11:19:31 +08:00
{
2021-04-25 15:33:17 +08:00
if (loginForm != null && !string.IsNullOrEmpty(loginForm.email.text) && !string.IsNullOrEmpty(loginForm.password.text))
2021-04-21 11:19:31 +08:00
{
Submit();
}
}
2021-04-06 15:30:36 +08:00
if (startCaptcha)
{
CaptchaTimerTick();
}
goScrollPanel();
goScrollSign();
2021-03-25 16:55:36 +08:00
}
#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;
}
2021-04-19 15:44:11 +08:00
private int pageNums = 4;
private void goScrollPanel()
{
var index = scrollPanelIndex;
2021-04-06 15:30:36 +08:00
var scrollValue = 1f/(pageNums - 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
#region
private bool startScrollSign = false;
private int scrollSignIndex = 0;
2021-04-06 15:30:36 +08:00
2021-04-21 16:16:14 +08:00
private void StartScrollSign(int index)
{
if (startScrollSign) return;
scrollSignIndex = index;
startScrollSign = true;
2021-04-06 15:30:36 +08:00
Debug.Log($"{index},{index * 160}");
if (index == 1)
{
if (signForm.years.value!=-1) signForm.years.value = 0;
if (signForm.months.value != -1) signForm.months.value = 0;
if (signForm.days.value != -1) signForm.days.value = 0;
if (signForm.countrys.value != -1) signForm.countrys.value = regOptions.countryDefaultValue;
if (signForm.genders.value != -1) signForm.genders.value = 0;
if (signForm.units.value != -1) signForm.units.value = 0;
if (pageNums == 5 && wxInfoJson != null)
{
var sex = wxInfoJson.Value<int>("sex");
if (sex > 0)
{
signForm.genders.value = sex - 1;
}
var country = wxInfoJson.Value<string>("country");
signForm.countrys.value = regOptions.GetCountryIndexByCode(country);
}
2021-04-16 17:49:11 +08:00
//if (string.IsNullOrEmpty(signForm.weight.text))
//{
// signForm.weight.text = "";
//}
//if (!string.IsNullOrEmpty(signForm.height.text))
//{
// signForm.height.text = "";
//}
2021-04-06 15:30:36 +08:00
}
signScrollBar.DOLocalMoveX((index-1) *160, 0.2f);
}
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;
2021-04-06 15:30:36 +08:00
}
}
else if (scrollSignIndex == 1)
{
scrollSign.horizontalNormalizedPosition += (1f / 20);
if (scrollSign.horizontalNormalizedPosition >= 1)
{
scrollSign.horizontalNormalizedPosition = 1;
startScrollSign = false;
}
}
}
}
#endregion
2021-03-25 16:55:36 +08:00
}