Beispiel #1
0
        /// <summary>
        /// Create a Tiled Map loading the XML from a StreamingAssetPath or a HTTP path (in the pc or web)
        /// </summary>
        /// <param name="wwwPath">Map's path with http for web files or without streaming assets path for local files</param>
        /// <param name="parent">This map's gameobject parent</param>
        /// <param name="baseTileMaterial">Base material to be used for the Tiles</param>
        /// <param name="sortingOrder">Base sorting order for the tile layers</param>
        /// <param name="makeUnique">Make unique tiles for all tile layers.</param>
        /// <param name="onMapFinishedLoading">Callback for when map finishes loading</param>
        /// <param name="simpleTileObjectCalculation">true to generate simplified tile collisions</param>
        /// <param name="tileObjectEllipsePrecision">Tile collisions ellipsoide approximation precision</param>
        /// <param name="clipperArcTolerance">Clipper arc angle tolerance</param>
        /// <param name="clipperDeltaOffset">Clipper delta offset</param>
        /// <param name="clipperEndType">Clipper Polygon end type</param>
        /// <param name="clipperJoinType">Clipper join type</param>
        /// <param name="clipperMiterLimit">Clipper limit for Miter join type</param>
        public Map(string wwwPath, GameObject parent,
					Material baseTileMaterial, int sortingOrder, bool makeUnique, 
					Action<Map> onMapFinishedLoading = null,
					int tileObjectEllipsePrecision = 16, bool simpleTileObjectCalculation = true,
					double clipperArcTolerance = 0.25, double clipperMiterLimit = 2.0,
					ClipperLib.JoinType clipperJoinType = ClipperLib.JoinType.jtRound,
					ClipperLib.EndType clipperEndType = ClipperLib.EndType.etClosedPolygon,
					float clipperDeltaOffset = 0)
        {
            _tileObjectEllipsePrecision = tileObjectEllipsePrecision;
            _simpleTileObjectCalculation = simpleTileObjectCalculation;
            _clipperArcTolerance = clipperArcTolerance;
            _clipperDeltaOffset = clipperDeltaOffset;
            _clipperEndType = clipperEndType;
            _clipperJoinType = clipperJoinType;
            _clipperMiterLimit = clipperMiterLimit;
            _mapName = Path.GetFileNameWithoutExtension(wwwPath);
            _mapExtension = Path.GetExtension(wwwPath);
            if (string.IsNullOrEmpty(_mapExtension))
                _mapExtension = ".tmx";

            Parent = parent;

            DefaultSortingOrder = sortingOrder;
            GlobalMakeUniqueTiles = makeUnique;
            BaseTileMaterial = baseTileMaterial;
            if (!wwwPath.Contains("://"))
                _mapPath = string.Concat(Application.streamingAssetsPath, Path.AltDirectorySeparatorChar);
            else
            {
                // remove _mapName from wwwPath
                _mapPath = wwwPath.Replace(string.Concat(_mapName, _mapExtension), "");
            }

            OnMapFinishedLoading = onMapFinishedLoading;

            new Task(LoadFromPath(wwwPath), true);
        }
Beispiel #2
0
        /// <summary>
        /// Create a Tiled Map using TextAsset as parameter
        /// </summary>
        /// <param name="mapText">Map's TextAsset</param>
        /// <param name="mapPath">Path to XML folder, so we can read relative paths for tilesets</param>
        /// <param name="parent">This map's gameobject parent</param>
        /// <param name="baseTileMaterial">Base material to be used for the Tiles</param>
        /// <param name="sortingOrder">Base sorting order for the tile layers</param>
        /// <param name="mapPath">Path to XML folder, so we can read relative paths for tilesets</param>
        /// <param name="makeUnique">array with bools to make unique tiles for each tile layer</param>
        /// <param name="onMapFinishedLoading">Callback for when map finishes loading</param>
        /// <param name="simpleTileObjectCalculation">true to generate simplified tile collisions</param>
        /// <param name="tileObjectEllipsePrecision">Tile collisions ellipsoide approximation precision</param>
        /// <param name="clipperArcTolerance">Clipper arc angle tolerance</param>
        /// <param name="clipperDeltaOffset">Clipper delta offset</param>
        /// <param name="clipperEndType">Clipper Polygon end type</param>
        /// <param name="clipperJoinType">Clipper join type</param>
        /// <param name="clipperMiterLimit">Clipper limit for Miter join type</param>
        public Map(TextAsset mapText, string mapPath, GameObject parent,
					Material baseTileMaterial, int sortingOrder, bool makeUnique, 
					Action<Map> onMapFinishedLoading = null,
					int tileObjectEllipsePrecision = 16, bool simpleTileObjectCalculation = true,
					double clipperArcTolerance = 0.25, double clipperMiterLimit = 2.0,
					ClipperLib.JoinType clipperJoinType = ClipperLib.JoinType.jtRound,
					ClipperLib.EndType clipperEndType = ClipperLib.EndType.etClosedPolygon,
					float clipperDeltaOffset = 0)
        {
            _tileObjectEllipsePrecision = tileObjectEllipsePrecision;
            _simpleTileObjectCalculation = simpleTileObjectCalculation;
            _clipperArcTolerance = clipperArcTolerance;
            _clipperDeltaOffset = clipperDeltaOffset;
            _clipperEndType = clipperEndType;
            _clipperJoinType = clipperJoinType;
            _clipperMiterLimit = clipperMiterLimit;

            NanoXMLDocument document = new NanoXMLDocument(mapText.text);

            _mapName = mapText.name;

            Parent = parent;

            DefaultSortingOrder = sortingOrder;
            GlobalMakeUniqueTiles = makeUnique;
            BaseTileMaterial = baseTileMaterial;
            _mapPath = mapPath;

            OnMapFinishedLoading = onMapFinishedLoading;

            Initialize(document);
        }