示例#1
0
        static Transform CreateTransInNode(Transform prefab)
        {
            Transform node = GetNode();
            Transform obj  = PrefabUtility.InstantiatePrefab(prefab.transform) as Transform;

            EditorUtiliTool.AddChildToP(node, obj);
            return(obj);
        }
示例#2
0
        static void InitPathNode()
        {
            _pathNode.Clear();
            _blockObjsDic.Clear();
            GameObject sceneTree = GameObject.Find("/__Scene");

            _sceneTree = sceneTree == null ? new GameObject("__Scene").transform : sceneTree.transform;
            _sceneTree.transform.position = Origin;
            string        winPath = EditorUtiliTool.UnityPath2WinAbs(MapBlockWindow.BlocksPrefabsDir);
            List <string> dirs    = new List <string>(Directory.GetDirectories(winPath));

            for (int i = 0; i < dirs.Count; i++)
            {
                string     blockNodeName = Path.GetFileName(dirs[i]);
                string     nodePath      = string.Format("/{0}/{1}", _sceneTree.name, blockNodeName);
                GameObject nodeGo        = GameObject.Find(nodePath);
                Transform  nodeTran      = nodeGo == null ? new GameObject(blockNodeName).transform : nodeGo.transform;
                if (!_pathNode.ContainsKey(nodeTran.name))
                {
                    _pathNode.Add(nodeTran.name, nodeTran);
                }

                EditorUtiliTool.AddChildToP(_sceneTree, nodeTran);

                foreach (Transform child in nodeTran)
                {
                    int     x = 0, z = 0;
                    Vector3 worldPos = child.position;
                    CalcGridPos(worldPos, out x, out z);
                    Block block = new Block();
                    block.obj = child;
                    block.x   = x;
                    block.z   = z;
                    int instanceID = child.GetInstanceID();
                    _blockObjsDic.Add(instanceID, block);
                }
            }

            _gridPainter = _sceneTree.GetComponent <MapGridPainter>();
            if (_gridPainter == null)
            {
                _gridPainter = _sceneTree.gameObject.AddComponent <MapGridPainter>();
            }
            _gridPainter.enabled   = true;
            _gridPainter.hideFlags = HideFlags.DontSave;
        }