Ejemplo n.º 1
0
        static bool TreatLayers(GameObject parent, TMX.BaseLayerElement[] layers)
        {
            for (int i = 0; i < layers.Length; i++)
            {
                TMX.BaseLayerElement layer = layers[i];
                GameObject           layerObject;
                GenerateLayerObject(parent, layer, out layerObject);

                if (layerObject != null)
                {
                    if (!layer.visible)
                    {
                        if (s_setHiddenLayersToInactive)
                        {
                            layerObject.SetActive(false);
                        }
                        else
                        {
                            Renderer[] renderers = layerObject.GetComponentsInChildren <Renderer>();
                            foreach (Renderer r in renderers)
                            {
                                r.enabled = false;
                            }
                        }
                    }

                    HandleCustomProperties(layerObject, layer.properties);
                    Undo.RegisterCreatedObjectUndo(layerObject, "Import layer " + layerObject.name);
                }
            }
            return(true);
        }
Ejemplo n.º 2
0
        static bool GenerateLayerObject(GameObject parent, TMX.BaseLayerElement layer, out GameObject layerObject)
        {
            layerObject = null;
            if (layer is TMX.Layer)
            {
                TMX.Layer tmxLayer = layer as TMX.Layer;

                bool success = TileLayerImporter.ImportTileLayer(tmxLayer, parent, s_orderInLayer, s_map.infinite, out layerObject);
                s_orderInLayer++;
                if (!success)
                {
                    return(false);
                }
            }
            else if (layer is TMX.ObjectGroup)
            {
                TMX.ObjectGroup objectGroup = layer as TMX.ObjectGroup;

                bool success = ObjectLayerImporter.ImportObjectGroup(objectGroup, ref s_orderInLayer, parent, out layerObject);
                s_orderInLayer++;
                if (!success)
                {
                    return(false);
                }
            }
            else if (layer is TMX.ImageLayer)
            {
                if (!ImportUtils.CreateAssetFolderIfMissing(s_imageLayerSpriteDir, true))
                {
                    return(false);
                }
                TMX.ImageLayer imageLayer = layer as TMX.ImageLayer;

                bool success = ImageLayerImporter.ImportImageLayer(imageLayer, parent, s_orderInLayer, out layerObject);
                s_orderInLayer++;
                if (!success)
                {
                    return(false);
                }
            }
            else if (layer is TMX.GroupLayer)
            {
                TMX.GroupLayer groupLayer = layer as TMX.GroupLayer;

                GameObject newGroupLayer = new GameObject(groupLayer.name);
                newGroupLayer.transform.SetParent(parent.transform, false);
                layerObject = newGroupLayer;
                SetupLayerOffset(newGroupLayer, groupLayer.offsetx, groupLayer.offsety);

                if (groupLayer.childLayers != null)
                {
                    TreatLayers(newGroupLayer, groupLayer.childLayers);
                }
            }
            return(true);
        }