using DragonBones; 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 Transform = UnityEngine.Transform; public class ManaPlayer : Regist { #region 变量 public static bool Complete; public static Transform SeleTra; public static Player Player; public static Transform DressRoom; public static Transform PlayerPink; public static Transform PlayerBlond; public static Transform PlayerBrown; public static ManaPlayer Instance; public static ListBoughtCloseList = new List(); public static List DressData = new List(); public static Dictionary CloseUnitDic = new Dictionary(); public static Dictionary CloseIDDic = new Dictionary(); public static Dictionary CloseSpriteDic = new Dictionary(); #endregion public override void Instantiate() { #region Player if (!Complete) { UnityFactory.factory.LoadDragonBonesData(ManaReso.Load("stand_ske", Folder.Config)); UnityFactory.factory.LoadDragonBonesData(ManaReso.Load("Closet_ske", Folder.Config)); UnityFactory.factory.LoadTextureAtlasData(ManaReso.Load("stand_tex", Folder.Config), "stand_texture"); UnityFactory.factory.LoadTextureAtlasData(ManaReso.Load("Closet_tex", Folder.Config), "Closet_texture"); Complete = true; } if (!ManaTutorial.TutorialA || ManaTutorial.TutorialIndexA != 1) { GetPlayer(); DressData = ManaData.GetDressData(); } else { PlayerPink = ManaReso.Get("Player", Folder.Scene, false, ManaReso.Get("PlayerPos3"), false, ObjType.Player); PlayerBlond = ManaReso.Get("Player", Folder.Scene, false, ManaReso.Get("PlayerPos2"), false, ObjType.Player); PlayerBrown = ManaReso.Get("Player", Folder.Scene, false, ManaReso.Get("PlayerPos1"), false, ObjType.Player); if (PlayerPink.GetComponent() == null) { PlayerPink.AddScript().BuildPink(); } if (PlayerBlond.GetComponent() == null) { PlayerBlond.AddScript().BuildBlond(); } if (PlayerBrown.GetComponent() == null) { PlayerBrown.AddScript().BuildBrown(); } PlayerPink.localScale = new Vector3(0.8f, 0.8f, 0.8f); PlayerBlond.localScale = new Vector3(0.8f, 0.8f, 0.8f); PlayerBrown.localScale = new Vector3(0.8f, 0.8f, 0.8f); SeleTra = PlayerBlond; } #endregion #region DressRoom #region Close List> textureAtlasDatalist = UnityFactory.factory.GetAllTextureAtlasData().Values.ToList(); for (int i = 0; i < textureAtlasDatalist.Count; i++) { for (int j = 0; j < textureAtlasDatalist[i].Count; j++) { TextureAtlasData textureAtlasData = textureAtlasDatalist[i][j]; string textureName = textureAtlasData.imagePath.Split('.')[0] + "ture"; foreach (var kv in textureAtlasData.textures) { Texture2D texture2D = UnityFactory.AtlasDictionary[textureName]; Rect rect = new Rect(kv.Value.region.x, texture2D.height - kv.Value.region.y - kv.Value.region.height, kv.Value.region.width, kv.Value.region.height); Sprite sprite = Sprite.Create(texture2D, rect, new Vector2(0.5f, 0.5f)); sprite.name = kv.Value.name; CloseSpriteDic.Add(sprite.name, sprite); } } } #endregion DressRoom = ManaReso.Get("DressRoom", Folder.Discard, true, null, true, ObjType.DressRoom); List attributeList = ManaData.GetDressRoomConfig(); Player.JumpFrequency = float.Parse(attributeList[0][1].Value); for (int i = 1; i < attributeList.Count; i++) { new CloseUnit(attributeList[i]); } List dressList = ManaData.GetDressList(); for (int i = 0; i < dressList.Count; i++) { BoughtCloseList.Add(dressList[i]); CloseUnitDic[dressList[i]].Unlock(); } #endregion } public override void RegistValueA() { Instance = this; ManaReso.Get("DressRoom").CreateTweenSr(0, 1, 0.25f, false, true, Curve.EaseOutQuad); } public Player GetPlayer(string type = null, XmlNode xmlNode = null) { List DressData = new List(); if (type == null && xmlNode == null) { DressData = ManaData.GetDressData(); } else { if (type == null) { DressData = ManaData.GetDressData(xmlNode); } else { if (type == "PlayerBlond") { DressData.Add("脑壳1"); DressData.Add("裙子1"); DressData.Add("鞋子1"); DressData.Add("头饰品1"); DressData.Add("上衣1"); DressData.Add("眼睛1"); DressData.Add("嘴巴1"); } else if (type == "PlayerBrown") { DressData.Add("脑壳2"); DressData.Add("裙子2"); DressData.Add("鞋子2"); DressData.Add("头饰品2"); DressData.Add("上衣2"); DressData.Add("眼睛2"); DressData.Add("嘴巴2"); } else if (type == "PlayerPink") { DressData.Add("脑壳3"); DressData.Add("裙子3"); DressData.Add("鞋子3"); DressData.Add("头饰品3"); DressData.Add("上衣3"); DressData.Add("眼睛3"); DressData.Add("嘴巴3"); } } } Transform tra = ManaReso.Get("Player", Folder.Scene, false, transform, ManaReso.Get("PlayerPosTra").position, ObjType.Player); Player = tra.GetComponent(); if (Player == null) { Player = tra.AddScript(); Player.BuildBlond(); } BuildPlayer(DressData); Player.SetAllCollider(true); tra.localScale = new Vector3(0.5f, 0.5f, 0.5f); ManaReso.TraDic.Add(tra.name, tra); return Player; } public static void BuildPlayer(List dressData) { Player.ChangeClose(BodyPart.Head, dressData[0]); Player.ChangeClose(BodyPart.Dress, dressData[1]); Player.ChangeClose(BodyPart.Shoe, dressData[2]); Player.ChangeClose(BodyPart.Headwear, dressData[3]); Player.ChangeClose(BodyPart.Top, dressData[4]); Player.ChangeClose(BodyPart.Eye, dressData[5]); Player.ChangeClose(BodyPart.Mouse, dressData[6]); } }