コード例 #1
0
    //---------------------------------------------------------------------
    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;
    }
コード例 #2
0
    //---------------------------------------------------------------------
    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);
    }