using RootMotion.FinalIK; using System.Collections; using System.Collections.Generic; using System.Threading; using UnityEditor; using UnityEngine; public class StepManager : MonoBehaviour { public static StepManager Instance { get; private set; } /// <summary> �û�ID </summary> public static string userID; /// <summary> ʱ��� </summary> public static long timeStamp; /// <summary> �Ƿ�ʼ��ʼ������ </summary> public static bool isInit = true; /// <summary> �Ƿ���������װ���� </summary> public static bool isFaceBuidling = false; /// <summary> ������������ģ�� </summary> public static GameObject player_dress; /// <summary> ���γ����ƶ�����ģ�� </summary> public static GameObject player; /// <summary> ������װ�ƹ� </summary> public static Light faceBuildLight; /// <summary> ���������ʼ��ת </summary> public static Quaternion initRot; /// <summary> ����״̬ö�� </summary> public enum RequestState { Success, /// <summary> ���ڰ����� </summary> HashFailed, /// <summary> Mac��ַ���� </summary> MacFailed, /// <summary> ����ʱ </summary> TimeOut, /// <summary> Ƶ�������������� </summary> Frequently, /// <summary> ��������ʧ�� </summary> URLFailed } /// <summary> ��ǰ����״̬ </summary> public static RequestState requestState=RequestState.URLFailed; public static int requestCode=0; private async void Start() { Instance = this; //await UIManager.Instance.ShowUI(WindowID.FaceBuildPanel); var characterRender = await YooAssetManager.Instance.LoadAsset<GameObject>("player_dress"); player_dress = Instantiate(characterRender); player_dress.transform.position = new Vector3(7.3f, 1000.29f, 109.78f); initRot = player_dress.transform.rotation; CharacterManager.Inst.MatchCharacterRender(player_dress.GetComponent<CharacterRender>()); faceBuildLight = GameObject.Find("FaceBuild Light").GetComponent<Light>(); CharacterManager.Inst.GoodsReadFromFile(player_dress.GetComponent<CharacterRender>()); //Debug.Log(faceBuildLight); } public async void Init() { RenderSettings.skybox = await YooAssetManager.Instance.LoadAsset<Material>("Skybox Cubemap Extended Mat"); var characterRender = await YooAssetManager.Instance.LoadAsset<GameObject>("player1"); player = Instantiate(characterRender); player.transform.position = new Vector3(24.162f, 3f, 75.317f); player.transform.GetChild(0).GetComponent<MoveController>().camRoot = GameObject.Find("CamRoot").transform; CharacterDataReMatch(); } private async void Update() { //if (Input.GetKeyDown(KeyCode.Q)) //{ // await UIManager.Instance.ShowUI(WindowID.FaceBuildPanel); // CharacterManager.UICam.gameObject.SetActive(true); //} } /// <summary> /// ���¸�ֵ��ǰ��ɫ��������װ������/���ý�ɫ��ת /// </summary> public void CharacterDataReMatch() { if (player) { CharacterManager.Inst.MatchCharacterRender(player_dress.GetComponent<CharacterRender>()); List<string> strs=new List<string>(player.transform.GetChild(0).GetComponent<CharacterRender>().dressRenders.Keys); for (int i = 0; i < strs.Count; i++) { string key = strs[i]; player.transform.GetChild(0).GetComponent<CharacterRender>().dressRenders[key].Dispose(); } player.transform.GetChild(0).GetComponent<CharacterRender>().dressRenders.Clear(); player_dress.transform.rotation= initRot; CharacterManager.Inst.CharacterClothReMatch(player.transform.GetChild(0).GetComponent<CharacterRender>()); } } }