示例#1
0
        private void GenerateTreeNew(UnityObject parentObj, TreeNode rootNode)
        {
            TreeNode node;

            if (rootNode == null)
            {
                GameObject rootGo = PrefabAnalyzer.GetObjectById((parentObj as Prefab).rootGameObjectId) as GameObject;
                node         = treeView1.Nodes.Add(rootGo.MName);
                node.Tag     = rootGo.guid;
                node.Checked = rootGo.MIsActive;

                GenerateTreeNew(rootGo, node);
                return;
            }

            if (parentObj.mChildren != null)
            {
                foreach (UnityObject child in parentObj.mChildren)
                {
                    node         = rootNode.Nodes.Add(child.MName);
                    node.Tag     = child.guid;
                    node.Checked = parentObj.MIsActive;

                    GenerateTreeNew(child, node);
                }
            }
        }
示例#2
0
        private void GetMonoBehaviours(TreeNode node, ref List <MonoBehaviour> list)
        {
            if (!node.Checked)
            {
                return;
            }

            ulong       guid = ulong.Parse(node.Tag.ToString());
            UnityObject obj  = PrefabAnalyzer.GetObjectById(guid);

            GameObject go = obj as GameObject;

            if (go != null && go.mComponents != null && (mIgnoreObjNames == null || !mIgnoreObjNames.Contains <string>(go.MName)))
            {
                for (int i = 0; i < go.mComponents.Count; i++)
                {
                    Console.WriteLine(go.mComponents[i].GetType());
                    list.Add(go.mComponents[i]);
                }
            }

            for (int i = 0; i < node.Nodes.Count; i++)
            {
                GetMonoBehaviours(node.Nodes[i], ref list);
            }
        }
示例#3
0
        private void btnAnalyzePrefab_Click(object sender, EventArgs e)
        {
            string fileContent = File.ReadAllText(txtPrefabPath.Text, Encoding.UTF8);

            PrefabAnalyzer.DoAnalyze(fileContent);

            treeView1.Nodes.Clear();
            foreach (Prefab prefab in PrefabAnalyzer.mPrefabObjects.Values)
            {
                GenerateTreeNew(prefab, null);
            }

            treeView1.ExpandAll();
        }
示例#4
0
        private void treeView1_MouseDown(object sender, MouseEventArgs e)
        {
            TreeNode node = treeView1.GetNodeAt(e.X, e.Y);

            if (node != null)
            {
                treeView1.SelectedNode = node;

                ulong       guid = ulong.Parse(node.Tag.ToString());
                UnityObject obj  = PrefabAnalyzer.GetObjectById(guid);

                GameObject go = obj as GameObject;

                if (go != null && go.mComponents != null)
                {
                    for (int i = 0; i < go.mComponents.Count; i++)
                    {
                        Console.WriteLine(go.mComponents[i].GetType());
                    }
                }
            }
        }