StepManager.cs 3.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495
  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 string 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. HashFailed,
  31. MacFailed,
  32. URLFailed
  33. }
  34. /// <summary> 当前请求状态 </summary>
  35. public static RequestState requestState=RequestState.URLFailed;
  36. private async void Start()
  37. {
  38. Instance = this;
  39. //await UIManager.Instance.ShowUI(WindowID.FaceBuildPanel);
  40. await UIManager.Instance.ShowUI(WindowID.DlgLogin);
  41. var characterRender = await YooAssetManager.Instance.LoadAsset<GameObject>("player_dress");
  42. player_dress = Instantiate(characterRender);
  43. player_dress.transform.position = new Vector3(7.3f, 1000.29f, 109.78f);
  44. initRot = player_dress.transform.rotation;
  45. CharacterManager.Inst.MatchCharacterRender(player_dress.GetComponent<CharacterRender>());
  46. faceBuildLight = GameObject.Find("FaceBuild Light").GetComponent<Light>();
  47. CharacterManager.Inst.GoodsReadFromFile(player_dress.GetComponent<CharacterRender>());
  48. //Debug.Log(faceBuildLight);
  49. }
  50. public async void Init()
  51. {
  52. RenderSettings.skybox = await YooAssetManager.Instance.LoadAsset<Material>("Skybox Cubemap Extended Mat");
  53. var characterRender = await YooAssetManager.Instance.LoadAsset<GameObject>("player1");
  54. player = Instantiate(characterRender);
  55. player.transform.position = new Vector3(24.162f, 3f, 75.317f);
  56. player.transform.GetChild(0).GetComponent<MoveController>().camRoot = GameObject.Find("CamRoot").transform;
  57. CharacterDataReMatch();
  58. }
  59. private async void Update()
  60. {
  61. //if (Input.GetKeyDown(KeyCode.Q))
  62. //{
  63. // await UIManager.Instance.ShowUI(WindowID.FaceBuildPanel);
  64. // CharacterManager.UICam.gameObject.SetActive(true);
  65. //}
  66. }
  67. /// <summary>
  68. /// 重新赋值当前角色的捏脸和装扮数据/重置角色旋转
  69. /// </summary>
  70. public void CharacterDataReMatch()
  71. {
  72. if (player)
  73. {
  74. CharacterManager.Inst.MatchCharacterRender(player_dress.GetComponent<CharacterRender>());
  75. List<string> strs=new List<string>(player.transform.GetChild(0).GetComponent<CharacterRender>().dressRenders.Keys);
  76. for (int i = 0; i < strs.Count; i++)
  77. {
  78. string key = strs[i];
  79. player.transform.GetChild(0).GetComponent<CharacterRender>().dressRenders[key].Dispose();
  80. }
  81. player.transform.GetChild(0).GetComponent<CharacterRender>().dressRenders.Clear();
  82. player_dress.transform.rotation= initRot;
  83. CharacterManager.Inst.CharacterClothReMatch(player.transform.GetChild(0).GetComponent<CharacterRender>());
  84. }
  85. }
  86. }