using System; using System.Collections; using System.Collections.Generic; using TMPro; using UnityEngine; using UnityEngine.UIElements; public class CharacterPool : MonoBehaviour { // "Character_Angus", // "Character_Bonnie", // "Character_Butch", // "Character_Chalk", // "Character_CrazyHorse", // "Character_Doge", // "Character_Dulla", // "Character_Flamma", // "Character_Jeanette", // "Character_Koraka", // "Character_LadyHao", // "Character_Lozen", // "Character_Mochizuki", // "Character_Musashi", // "Character_Nakano", // "Character_PinkPigTailGirl", // "Character_Ragnar", // "Character_ShiYang", // "Character_Tlahucole", // "Character_YaaAntesawa", // "Character_Zap", // "Character_Knight", // "Character_Knight_Female", // "Character_Stud", // "Character_Druid", // "Character_Knight_King", // "Character_Queen", // "Character_Biker", // "Character_FireFighter", // "Character_Gangster", // "Character_Grandma", // "Character_Grandpa", // "Character_HipsterGirl", // "Character_HipsterGuy", // "Character_Jock", // "Character_Paramedic", // "Character_PunkGirl", // "Character_PunkGuy", // "Character_Roadworker", // "Character_Ash", // "Character_Thorn" // serverIndex => localIndex (в listOfCharacter) public static Dictionary ServerToClientIndex = new Dictionary { { "Character_0", 1 }, // Ash => Character_Angus { "Character_1", 2 }, // Angus => Character_Bonnie { "Character_2", 3 }, // Bonnie => Character_Butch { "Character_3", 4 }, // Butch => Character_Chalk { "Character_4", 5 }, // Chalk => Character_CrazyHorse { "Character_5", 6 }, // Crazy Horse => Character_Doge { "Character_6", 7 }, // Doge => Character_Dulla { "Character_7", 8 }, // Dulla => Character_Flamma { "Character_8", 9 }, // Flamma => Character_Jeanette { "Character_9", 10 }, // Jeanette => Character_Koraka { "Character_10", 11 }, // Koraka => Character_Lady Hao { "Character_11", 12 }, // Lady Hao => Character_Lozen { "Character_12", 13 }, // Lozen => Character_Mochizuki { "Character_13", 14 }, // Mochizuki => Character_Musashi (selectionName void) { "Character_14", 15 }, // Toshiro Miyamoto => Character_Nakano { "Character_15", 16 }, // Taka Nakano => Character_Pigtail Girl { "Character_16", 17 }, // Pigtail Girl => Character_Ragnar { "Character_17", 18 }, // Ragnar => Character_ShiYang { "Character_18", 19 }, // Shi Yang => Character_Tlahucole { "Character_19", 21 }, // Tlahucole => Character_YaaAntesawa { "Character_20", 40 }, // Thorn => Character_Zap { "Character_21", 23 }, // Yaa Antesawa => Character_Knight { "Character_22", 24 }, // Zap => Character_Bruiser { "Character_23", 25 }, // Knight => Character_Tactician { "Character_24", 26 }, // Female Knight => Character_Druid { "Character_25", 27 }, // Tactician => Character_Knight King { "Character_26", 28 }, // Druid => Character_Knight Queen { "Character_27", 29 }, // Knight King => Character_Biker { "Character_28", 30 }, // Knight Queen => Character_Fire Fighter { "Character_29", 31 }, // Biker => Character_Gangster { "Character_30", 32 }, // Fire Fighter => Character_Grandma { "Character_31", 33 }, // Gangster => Character_Grandpa { "Character_32", 34 }, // Grandma => Character_Hipster Girl { "Character_33", 35 }, // Grandpa => Character_Hipster Guy { "Character_34", 36 }, // Hipster Girl => Character_Jock { "Character_35", 37 }, // Hipster Guy => Character_Paramedic { "Character_36", 38 }, // Jock => Character_Punk Girl { "Character_37", 39 }, // Paramedic => Character_Punk Guy { "Character_38", 40 }, // Punk Girl => Character_Engineer { "Character_39", 0 }, // Punk Guy => Character_Ash { "Character_40", 20 }, // Road Worker => Character_Thorn }; public static Dictionary ServerToClientNameMap = new Dictionary { { "Character_Angus", "Character_Ash" }, { "Character_Bonnie", "Character_Angus" }, { "Character_Butch", "Character_Bonnie" }, { "Character_Chalk", "Character_Butch" }, { "Character_CrazyHorse", "Character_Chalk" }, { "Character_Doge", "Character_CrazyHorse" }, { "Character_Dulla", "Character_Doge" }, { "Character_Flamma", "Character_Dulla" }, { "Character_Jeanette", "Character_Flamma" }, { "Character_Koraka", "Character_Jeanette" }, { "Character_LadyHao", "Character_Koraka" }, { "Character_Lozen", "Character_LadyHao" }, { "Character_Mochizuki", "Character_Lozen" }, { "Character_Musashi", "Character_Mochizuki" }, { "Character_Nakano", "Character_ToshiroMiyamoto" }, { "Character_PinkPigTailGirl","Character_Nakano" }, { "Character_Ragnar", "Character_PinkPigTailGirl" }, { "Character_ShiYang", "Character_Ragnar" }, { "Character_Tlahucole", "Character_ShiYang" }, { "Character_YaaAntesawa", "Character_Tlahucole" }, { "Character_Zap", "Character_Thorn" }, { "Character_Knight", "Character_YaaAntesawa" }, { "Character_FemaleKnight", "Character_Zap" }, { "Character_Stud", "Character_Knight" }, { "Character_Druid", "Character_Knight_Female" }, { "Character_Knight_King", "Character_Stud" }, { "Character_Queen", "Character_Druid" }, { "Character_Biker", "Character_Knight_King" }, { "Character_FireFighter", "Character_Queen" }, { "Character_Gangster", "Character_Biker" }, { "Character_Grandma", "Character_FireFighter" }, { "Character_Grandpa", "Character_Gangster" }, { "Character_HipsterGirl", "Character_Grandma" }, { "Character_HipsterGuy", "Character_Grandpa" }, { "Character_Jock", "Character_HipsterGirl" }, { "Character_Paramedic", "Character_HipsterGuy" }, { "Character_PunkGirl", "Character_Jock" }, { "Character_PunkGuy", "Character_Paramedic" }, { "Character_Roadworker", "Character_PunkGirl" }, { "Character_Ash", "Character_PunkGuy" }, { "Character_Thorn", "Character_Roadworker" } }; internal static List listOfCharacter; public void Awake() { listOfCharacter = new List { new CharacterData { skinName = 0, selectionSkinName = "Angus Macaskill", root = GetObjectByInstanceId(0) }, new CharacterData { skinName = 1, selectionSkinName = "Bonnie Oakland", root = GetObjectByInstanceId(1) }, new CharacterData { skinName = 2, selectionSkinName = "Butch Cassidy", root = GetObjectByInstanceId(2) }, new CharacterData { skinName = 3, selectionSkinName = "Chalk", root = GetObjectByInstanceId(3) }, new CharacterData { skinName = 4, selectionSkinName = "Crazy Horse", root = GetObjectByInstanceId(4) }, new CharacterData { skinName = 5, selectionSkinName = "Doge Fan", root = GetObjectByInstanceId(5) }, new CharacterData { skinName = 6, selectionSkinName = "Dulla Bhatti", root = GetObjectByInstanceId(6) }, new CharacterData { skinName = 7, selectionSkinName = "Flamma", root = GetObjectByInstanceId(7) }, new CharacterData { skinName = 8, selectionSkinName = "Jeanette of Arc", root = GetObjectByInstanceId(8) }, new CharacterData { skinName = 9, selectionSkinName = "Koraka", root = GetObjectByInstanceId(9) }, new CharacterData { skinName = 10, selectionSkinName = "Lady Hao", root = GetObjectByInstanceId(10) }, new CharacterData { skinName = 11, selectionSkinName = "Lozen", root = GetObjectByInstanceId(11) }, new CharacterData { skinName = 12, selectionSkinName = "Mochizuki", root = GetObjectByInstanceId(12) }, new CharacterData { skinName = 13, selectionSkinName = "", root = GetObjectByInstanceId(13) }, new CharacterData { skinName = 14, selectionSkinName = "Taka Nakano", root = GetObjectByInstanceId(14) }, new CharacterData { skinName = 15, selectionSkinName = "Pigtail Girl", root = GetObjectByInstanceId(15) }, new CharacterData { skinName = 16, selectionSkinName = "Ragnar", root = GetObjectByInstanceId(16) }, new CharacterData { skinName = 17, selectionSkinName = "Shi Yang", root = GetObjectByInstanceId(17) }, new CharacterData { skinName = 18, selectionSkinName = "Tlahucole", root = GetObjectByInstanceId(18) }, new CharacterData { skinName = 19, selectionSkinName = "Yaa Antesawa", root = GetObjectByInstanceId(19) }, new CharacterData { skinName = 20, selectionSkinName = "Zap", root = GetObjectByInstanceId(20) }, new CharacterData { skinName = 21, selectionSkinName = "Knight", root = GetObjectByInstanceId(21) }, new CharacterData { skinName = 22, selectionSkinName = "Bruiser", root = GetObjectByInstanceId(22) }, new CharacterData { skinName = 23, selectionSkinName = "Tactician", root = GetObjectByInstanceId(23) }, new CharacterData { skinName = 24, selectionSkinName = "Druid", root = GetObjectByInstanceId(24) }, new CharacterData { skinName = 25, selectionSkinName = "Knight King", root = GetObjectByInstanceId(25) }, new CharacterData { skinName = 26, selectionSkinName = "Knight Queen", root = GetObjectByInstanceId(26) }, new CharacterData { skinName = 27, selectionSkinName = "Biker", root = GetObjectByInstanceId(27) }, new CharacterData { skinName = 28, selectionSkinName = "Fire Fighter", root = GetObjectByInstanceId(28) }, new CharacterData { skinName = 29, selectionSkinName = "Gangster", root = GetObjectByInstanceId(29) }, new CharacterData { skinName = 30, selectionSkinName = "Grandma", root = GetObjectByInstanceId(30) }, new CharacterData { skinName = 31, selectionSkinName = "Grandpa", root = GetObjectByInstanceId(31) }, new CharacterData { skinName = 32, selectionSkinName = "Hipster Girl", root = GetObjectByInstanceId(32) }, new CharacterData { skinName = 33, selectionSkinName = "Hipster Guy", root = GetObjectByInstanceId(33) }, new CharacterData { skinName = 34, selectionSkinName = "Jock", root = GetObjectByInstanceId(34) }, new CharacterData { skinName = 35, selectionSkinName = "Paramedic", root = GetObjectByInstanceId(35) }, new CharacterData { skinName = 36, selectionSkinName = "Punk Girl", root = GetObjectByInstanceId(36) }, new CharacterData { skinName = 37, selectionSkinName = "Punk Guy", root = GetObjectByInstanceId(37) }, new CharacterData { skinName = 38, selectionSkinName = "Engineer", root = GetObjectByInstanceId(38) }, new CharacterData { skinName = 39, selectionSkinName = "Ash", root = GetObjectByInstanceId(39) }, new CharacterData { skinName = 40, selectionSkinName = "Thorn", root = GetObjectByInstanceId(40) }, new CharacterData { skinName = 41, selectionSkinName = "Rakshaz", root = GetObjectByInstanceId(41) } }; } private static GameObject GetObjectByInstanceId(int id) { string targetName = $"Character_{id}"; GameObject root = GameObject.Find("Character_Select_Contents"); Transform[] allChildren = root.GetComponentsInChildren(true); foreach (Transform child in allChildren) { if (child.name == targetName) return child.gameObject; } // Debug.LogWarning($"Character GameObject with name '{targetName}' not found in CharactersRoot."); return null; } [System.Serializable] internal struct CharacterData { // public TextMeshProUGUI data; public int skinName; public string selectionSkinName; public GameObject root; } }