StepManager.cs 3.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103
  1. using RootMotion.FinalIK;
  2. using System.Collections;
  3. using System.Collections.Generic;
  4. using System.Threading;
  5. using UnityEditor;
  6. using UnityEngine;
  7. public class StepManager : MonoBehaviour
  8. {
  9. public static StepManager Instance { get; private set; }
  10. /// <summary> 用户ID </summary>
  11. public static string userID;
  12. /// <summary> 时间戳 </summary>
  13. public static long timeStamp;
  14. /// <summary> 是否开始初始化步骤 </summary>
  15. public static bool isInit = true;
  16. /// <summary> 是否在捏脸换装界面 </summary>
  17. public static bool isFaceBuidling = false;
  18. /// <summary> 背包穿戴人物模型 </summary>
  19. public static GameObject player_dress;
  20. /// <summary> 漫游场景移动人物模型 </summary>
  21. public static GameObject player;
  22. /// <summary> 捏脸换装灯光 </summary>
  23. public static Light faceBuildLight;
  24. /// <summary> 穿戴人物初始旋转 </summary>
  25. public static Quaternion initRot;
  26. /// <summary> 请求状态枚举 </summary>
  27. public enum RequestState
  28. {
  29. Success,
  30. /// <summary> 不在白名单 </summary>
  31. HashFailed,
  32. /// <summary> Mac地址错误 </summary>
  33. MacFailed,
  34. /// <summary> 请求超时 </summary>
  35. TimeOut,
  36. /// <summary> 频繁请求,请求超限制 </summary>
  37. Frequently,
  38. /// <summary> 网络连接失败 </summary>
  39. URLFailed
  40. }
  41. /// <summary> 当前请求状态 </summary>
  42. public static RequestState requestState=RequestState.URLFailed;
  43. public static int requestCode=0;
  44. private async void Start()
  45. {
  46. Instance = this;
  47. //await UIManager.Instance.ShowUI(WindowID.FaceBuildPanel);
  48. var characterRender = await YooAssetManager.Instance.LoadAsset<GameObject>("player_dress");
  49. player_dress = Instantiate(characterRender);
  50. player_dress.transform.position = new Vector3(7.3f, 1000.29f, 109.78f);
  51. initRot = player_dress.transform.rotation;
  52. CharacterManager.Inst.MatchCharacterRender(player_dress.GetComponent<CharacterRender>());
  53. faceBuildLight = GameObject.Find("FaceBuild Light").GetComponent<Light>();
  54. CharacterManager.Inst.GoodsReadFromFile(player_dress.GetComponent<CharacterRender>());
  55. //Debug.Log(faceBuildLight);
  56. }
  57. public async void Init()
  58. {
  59. RenderSettings.skybox = await YooAssetManager.Instance.LoadAsset<Material>("Skybox Cubemap Extended Mat");
  60. var characterRender = await YooAssetManager.Instance.LoadAsset<GameObject>("player1");
  61. player = Instantiate(characterRender);
  62. player.transform.position = new Vector3(24.162f, 3f, 75.317f);
  63. player.transform.GetChild(0).GetComponent<MoveController>().camRoot = GameObject.Find("CamRoot").transform;
  64. CharacterDataReMatch();
  65. }
  66. private async void Update()
  67. {
  68. //if (Input.GetKeyDown(KeyCode.Q))
  69. //{
  70. // await UIManager.Instance.ShowUI(WindowID.FaceBuildPanel);
  71. // CharacterManager.UICam.gameObject.SetActive(true);
  72. //}
  73. }
  74. /// <summary>
  75. /// 重新赋值当前角色的捏脸和装扮数据/重置角色旋转
  76. /// </summary>
  77. public void CharacterDataReMatch()
  78. {
  79. if (player)
  80. {
  81. CharacterManager.Inst.MatchCharacterRender(player_dress.GetComponent<CharacterRender>());
  82. List<string> strs=new List<string>(player.transform.GetChild(0).GetComponent<CharacterRender>().dressRenders.Keys);
  83. for (int i = 0; i < strs.Count; i++)
  84. {
  85. string key = strs[i];
  86. player.transform.GetChild(0).GetComponent<CharacterRender>().dressRenders[key].Dispose();
  87. }
  88. player.transform.GetChild(0).GetComponent<CharacterRender>().dressRenders.Clear();
  89. player_dress.transform.rotation= initRot;
  90. CharacterManager.Inst.CharacterClothReMatch(player.transform.GetChild(0).GetComponent<CharacterRender>());
  91. }
  92. }
  93. }