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); }
internal static bool ImportImageLayer(TMX.ImageLayer imageLayer, GameObject parent, int sortingLayer, out GameObject newImageLayer) { newImageLayer = new GameObject(imageLayer.name, typeof(SpriteRenderer)); newImageLayer.transform.SetParent(parent.transform, false); TiledTMXImporter.SetupLayerOffset(newImageLayer, imageLayer.offsetx, imageLayer.offsety); if (imageLayer.image != null) { string relativeSource = imageLayer.image.source; Sprite importedSprite = TiledUtils.ImportPathAsSprite(TiledTMXImporter.s_tmxParentFolder, relativeSource, TiledTMXImporter.s_imageLayerSpriteDir, TiledTMXImporter.s_pixelsPerUnit); SpriteRenderer renderer = newImageLayer.GetComponent <SpriteRenderer>(); renderer.sprite = importedSprite; renderer.sortingOrder = sortingLayer; } return(true); }