using DragonBones; #if UNITY_EDITOR using UnityEditor; #endif using UnityEngine; using UnityEngine.UI; using System; using System.Xml; using System.Text; using System.Linq; using System.Collections; using System.Diagnostics; using System.Collections.Generic; using Debug = UnityEngine.Debug; using Object = UnityEngine.Object; using Transform = UnityEngine.Transform; public class PlayerManager : Regist { #region Config public static bool Inited; public static Player Player; public static Transform DressRoom; public static Transform DefaultPinkPlayer; public static Transform DefaultBlondPlayer; public static Transform DefaultBrownPlayer; public static Transform SelectedPlayer; public static PlayerManager Instance; public static ListBoughtCloseIDs = new List(); public static List DressDatas = new List(); public static Dictionary CloseItemDictionary = new Dictionary(); public static Dictionary CloseIDDictionary = new Dictionary(); public static Dictionary CloseSpriteDictionary = new Dictionary(); #endregion public override void InstantiatePrefabs() { #region Player Initializer.DebugText.text = "error : mp0"; if (!Inited) { Initializer.DebugText.text = "error : mp0-1"; UnityFactory.factory.LoadDragonBonesData(ResourceManager.Load(ResourceLabel.StandSke, Folder.Config)); Initializer.DebugText.text = "error : mp0-2"; UnityFactory.factory.LoadTextureAtlasData(ResourceManager.Load(ResourceLabel.StandTex, Folder.Config), ResourceLabel.StandTexture); Inited = true; } Initializer.DebugText.text = "error : mp1"; if (!TutorialManager.NewplayerTutorial || TutorialManager.NewplayerTutorialIndex != 1) { GetPlayer(); DressDatas = ConfigManager.GetDressData(); } else { DefaultPinkPlayer = ResourceManager.Get(ResourceLabel.Player, Folder.Scene, false, ResourceManager.Get(TutorialLabel.PinkPlayerPos), false, ObjType.Player); DefaultBlondPlayer = ResourceManager.Get(ResourceLabel.Player, Folder.Scene, false, ResourceManager.Get(TutorialLabel.BlondPlayerPos), false, ObjType.Player); DefaultBrownPlayer = ResourceManager.Get(ResourceLabel.Player, Folder.Scene, false, ResourceManager.Get(TutorialLabel.BrownPlayerPos), false, ObjType.Player); if (DefaultPinkPlayer.GetComponent() == null) { DefaultPinkPlayer.AddScript().BuildPink(); } if (DefaultBlondPlayer.GetComponent() == null) { DefaultBlondPlayer.AddScript().BuildBlond(); } if (DefaultBrownPlayer.GetComponent() == null) { DefaultBrownPlayer.AddScript().BuildBrown(); } Vector3 tutorialPlayerScale = new Vector3(0.8f, 0.8f, 0.8f); DefaultPinkPlayer.localScale = tutorialPlayerScale; DefaultBlondPlayer.localScale = tutorialPlayerScale; DefaultBrownPlayer.localScale = tutorialPlayerScale; SelectedPlayer = DefaultBlondPlayer; } #endregion #region DressRoom Initializer.DebugText.text = "error : mp2"; List attributeList = ConfigManager.GetDressRoomConfig(); Player.InDressRoomJumpFrequency = float.Parse(attributeList[0][1].Value); Initializer.DebugText.text = "error : mp3"; DressRoom = ResourceManager.Get(ResourceLabel.DressRoom, Folder.UI, true, null, true, ObjType.DressRoom); DressRoom.SetActive(false); DontDestroyOnLoad(DressRoom); Initializer.DebugText.text = "error : mp4"; List dressList = ConfigManager.GetDressList(); Initializer.DebugText.text = "error : mp5"; for (int i = 0; i < dressList.Count; i++) { BoughtCloseIDs.Add(dressList[i]); } #endregion } public override void FirstInit() { Instance = this; ResourceManager.Get(ResourceLabel.DressRoom).CreateTweenSr(0, 1, 0.25f, false, true, Curve.EaseOutQuad); } public Player GetPlayer(XmlNode xmlNode = null) { List DressData = new List(); if (xmlNode == null) { DressData = ConfigManager.GetDressData(); } else { DressData = ConfigManager.GetDressData(xmlNode); } Transform tra = ResourceManager.Get(ResourceLabel.Player, Folder.Scene, false, transform, false, ObjType.Player); tra.SetParent(ResourceManager.Get(GardenLabel.GardenPivot)); Player = tra.GetComponent(); if (Player == null) { Player = tra.AddScript(); Player.Build(); } BuildPlayer(DressData); Player.SetAllCollider(true); Player.Flip(PlayerDirection.Left); Player.transform.position = ResourceManager.Get(GardenLabel.GardenPlayerPos).position; tra.localScale = new Vector3(0.5f, 0.5f, 0.5f); ResourceManager.TransformDictionary.Add(tra.name, tra); return Player; } public Player GetRawPlayer() { Transform trans = ResourceManager.Get(ResourceLabel.Player, Folder.Scene, false, null, false, ObjType.Player); var player = trans.GetComponent(); if (player == null) { player = trans.AddScript(); player.BuildBlond(); } //BuildPlayer(dressData, player, false); return player; } public static void BuildPlayer(List dressData, Player player = null, bool resetDepth = true) { if (player == null) { player = Player; } player.ChangeClose(BodyPart.Head, dressData[0], resetDepth); player.ChangeClose(BodyPart.Dress, dressData[1], resetDepth); player.ChangeClose(BodyPart.Shoe, dressData[2], resetDepth); player.ChangeClose(BodyPart.Headwear, dressData[3], resetDepth); player.ChangeClose(BodyPart.Top, dressData[4], resetDepth); player.ChangeClose(BodyPart.Eye, dressData[5], resetDepth); player.ChangeClose(BodyPart.Mouse, dressData[6], resetDepth); player.ChangeClose(BodyPart.Wing, dressData[7], resetDepth); player.ChangeClose(BodyPart.LeftLongSleeve, dressData[8], resetDepth); player.ChangeClose(BodyPart.LeftShortSleeve, dressData[9], resetDepth); player.ChangeClose(BodyPart.RightLongSleeve, dressData[10], resetDepth); player.ChangeClose(BodyPart.RightShortSleeve, dressData[11], resetDepth); } public static void InitDressRoom() { List attributeList = ConfigManager.GetDressRoomConfig(); for (int i = 1; i < attributeList.Count; i++) { new CloseItem(attributeList[i]); } for (int i = 0; i < BoughtCloseIDs.Count; i++) { //Debug.Log(BoughtCloseList[i]); CloseItemDictionary[BoughtCloseIDs[i]].Unlock(); } } }