UserComp.cs 4.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108
  1. using System;
  2. using System.Collections;
  3. using UnityEngine;
  4. using UnityEngine.Networking;
  5. using Newtonsoft.Json;
  6. /* Socket组件-用户 */
  7. public class UserComp : JCUnityLib.Singleton<UserComp>
  8. {
  9. public void getUserInfo(System.Action<UserInfo> cb) {
  10. UserPlayer.ins.call("userComp.getUserInfo", null, cb);
  11. }
  12. public void saveUserInfo(UserInfo userInfo) {
  13. UserPlayer.ins.call("userComp.saveUserInfo", userInfo);
  14. }
  15. private string _lastSaveMac;
  16. public void saveMac()
  17. {
  18. string mac = LoginMgr.myUserInfo.mac;
  19. if (string.IsNullOrEmpty(mac)) return;
  20. _lastSaveMac = mac;
  21. int type = AimHandler.ins.DeviceType;
  22. if (type > 0) {
  23. UserPlayer.ins.call("userComp.saveMac2", mac, type);
  24. } else {
  25. Action<Newtonsoft.Json.Linq.JToken> cb = (Newtonsoft.Json.Linq.JToken o) => {
  26. string gyrStr = o.Value<string>("gyr");
  27. string magStr = o.Value<string>("mag");
  28. AimHandler.ins.InitGyr(gyrStr);
  29. AimHandler.ins.InitMag(magStr);
  30. };
  31. UserPlayer.ins.call("userComp.saveMac", new object[]{mac}, cb);
  32. }
  33. if (CommonConfig.StandaloneMode)
  34. {
  35. //WWWForm form = new WWWForm();
  36. //form.AddField("mac", mac);
  37. //JCUnityLib.CoroutineStarter.Start(Post(CommonConfig.SmartBowSdkURL + "/SmartBowSDK/getCalibrateRecord", form, (res) =>
  38. //{
  39. // if (res.code == 0) onResumeCalibrateRecord(res.data as string);
  40. //}));
  41. onResumeCalibrateRecord(PlayerPrefs.GetString(GetCalibrateDataStorageLocalKey(mac), ""));
  42. }
  43. }
  44. public void saveCalibrateRecord(string record) {
  45. string mac = BluetoothAim.ins.curMac;
  46. if (string.IsNullOrEmpty(mac)) {
  47. SideTipView.ShowTip("没有Mac无法上传九轴数据", UnityEngine.Color.yellow);
  48. throw new Exception("没有Mac无法上传九轴数据");
  49. }
  50. int type = AimHandler.ins.DeviceType;
  51. if (type > 0) {
  52. Axis9CalibrateRecord.CacheCalibrateRecord(mac, record);
  53. Axis9CalibrateRecord.SetCalibrateOkRecord(mac, true);
  54. UserPlayer.ins.call("userComp.saveCalibrateRecord2", type, record, mac);
  55. if (CommonConfig.StandaloneMode)
  56. {
  57. //WWWForm form = new WWWForm();
  58. //form.AddField("mac", mac);
  59. //form.AddField("record", record);
  60. //JCUnityLib.CoroutineStarter.Start(Post(CommonConfig.SmartBowSdkURL + "/SmartBowSDK/saveCalibrateRecord", form, null));
  61. PlayerPrefs.SetString(GetCalibrateDataStorageLocalKey(mac), record == null ? "" : record);
  62. }
  63. }
  64. }
  65. private string GetCalibrateDataStorageLocalKey(string mac)
  66. {
  67. string key = "CalibrateDataStorage";
  68. string version = "1.0.0";
  69. return key + "_" + mac + "_" + version;
  70. }
  71. public void deleteAccount(Action<bool> callback)
  72. {
  73. if (UserPlayer.ins.isValid && UserPlayer.ins.loginAuthed)
  74. {
  75. UserPlayer.ins.call("userComp.deleteAccount", null, callback);
  76. }
  77. else
  78. {
  79. callback?.Invoke(false);
  80. }
  81. }
  82. #region 被服务端调用的函数
  83. public void onResumeCalibrateRecord(string record) {
  84. Axis9CalibrateRecord.CacheCalibrateRecord(_lastSaveMac, record);
  85. AimHandler.ins.ResumeCalibrateRecord(record);
  86. }
  87. #endregion
  88. //public static IEnumerator Post(string url, WWWForm form, Action<RequestResult> callback)
  89. //{
  90. // using (UnityWebRequest request = UnityWebRequest.Post(url, form))
  91. // {
  92. // yield return request.SendWebRequest();
  93. // if (request.result == UnityWebRequest.Result.Success)
  94. // callback?.Invoke(JsonConvert.DeserializeObject<RequestResult>(request.downloadHandler.text));
  95. // else
  96. // callback?.Invoke(new RequestResult());
  97. // }
  98. //}
  99. }