//--------------------------------------------------------------------- public static void Initialize(List <string> categoryList) { m_CategoryMap.Clear(); for (int i = 0; i < categoryList.Count; ++i) { string category = categoryList[i]; CreateObject(category); } GameObject UnknownObject = GameObject.Find("Unknowns"); if (UnknownObject == null) { UnknownObject = new GameObject(); //UnknownObject.AddComponent<ImmortalComponent>(); UnityEngine.Object.DontDestroyOnLoad(UnknownObject); UnknownObject.name = "Unknowns"; } m_UnknownParent = UnknownObject.transform; m_CategoryMap[m_UnknownParent.name] = m_UnknownParent; foreach (var category in m_CategoryMap) { Transform categoryTrans = category.Value; CClientCommon.NormalizeTransform(categoryTrans); } m_IsInitialize = true; }
//--------------------------------------------------------------------- public static Transform GetObject(string categoryName) { if (!IsInitialize()) { return(null); } // Find path or name if (m_CategoryMap.ContainsKey(categoryName)) { return(m_CategoryMap[categoryName]); } // Not Path if (categoryName.Contains("/")) { CreateObject(categoryName); return(m_CategoryMap[categoryName]); } // Find any contains the name foreach (var category in m_CategoryMap) { if (category.Key.Contains(categoryName)) { return(category.Value); } } // Lookup unknown node Transform categoryObject = m_UnknownParent.Find(categoryName); if (categoryObject != null) { return(categoryObject); } // Create to unknown child GameObject newObject = new GameObject(); newObject.name = categoryName; CClientCommon.AttachChild(m_UnknownParent, newObject.transform, true); newObject.transform.position = Vector3.zero; newObject.transform.rotation = Quaternion.identity; CClientCommon.NormalizeTransform(newObject); return(newObject.transform); }