Ejemplo n.º 1
0
        /// <summary>
        /// Copy tileset image file to point out folder , and change the image import setting fit for tileset rendering
        /// </summary>
        public static void CopyTilesetImage(ITU_TsxRootMeta _tileset, string _saveToFolderFullPath)
        {
            var saveToFileFullPath = _saveToFolderFullPath + Path.DirectorySeparatorChar + _tileset.imgNameWithExtension;

            if (File.Exists(saveToFileFullPath))
            {
                File.Delete(saveToFileFullPath);
            }

            if (!Directory.Exists(_saveToFolderFullPath))
            {
                Directory.CreateDirectory(_saveToFolderFullPath);
            }

            FileUtil.CopyFileOrDirectory(_tileset.imgSourceFullPath, saveToFileFullPath);
            AssetDatabase.Refresh();

            var imgFilePath     = FileUtil.GetProjectRelativePath(saveToFileFullPath);
            var importer        = AssetImporter.GetAtPath(imgFilePath) as TextureImporter;
            var textureSettings = new TextureImporterSettings();

            importer.ReadTextureSettings(textureSettings);

            textureSettings.textureType      = TextureImporterType.Default;
            textureSettings.textureShape     = TextureImporterShape.Texture2D;
            textureSettings.streamingMipmaps = false;
            textureSettings.wrapMode         = TextureWrapMode.Clamp;
            textureSettings.filterMode       = FilterMode.Point;

            importer.SetTextureSettings(textureSettings);
            importer.SaveAndReimport();
        }
Ejemplo n.º 2
0
        /// <summary>
        /// Warp Function for CopyTilesetImage & SaveMaterialFromTemplate
        /// </summary>
        public static Material SaveTilsetImageAndMaterial(ITU_TsxRootMeta _tileset, Material _template, string _imgSaveToRelatePath, string _matSaveToRelatePath)
        {
            _imgSaveToRelatePath = Application.dataPath + _imgSaveToRelatePath;
            _matSaveToRelatePath = Application.dataPath + _matSaveToRelatePath;
            CopyTilesetImage(_tileset, _imgSaveToRelatePath);
            // Path.DirectorySeparatorChar
            var imgFullPath = _imgSaveToRelatePath + "/" + _tileset.imgNameWithExtension;
            var matFullPath = _matSaveToRelatePath + "/" + Path.GetFileNameWithoutExtension(_tileset.imgNameWithExtension) + ".mat";

            return(SaveMaterialFromTemplate(_template, imgFullPath, matFullPath));
        }
Ejemplo n.º 3
0
        private void HandleTilesetNode(XElement _node)
        {
            var tsxFilePath = new FileInfo(_node.Attribute("source").Value).FullName;
            var tsxFile     = XDocument.Load(tsxFilePath);
            var fistGid     = Convert.ToInt32(_node.Attribute("firstgid").Value);

            var tileset = new ITU_TsxRootMeta();

            tileset.Deserialize(tsxFile.Root, tsxFilePath, fistGid);
            tilsetList.Add(tileset);
        }
Ejemplo n.º 4
0
        public static void DeleteNotUsedImageAndMaterial(ITU_TsxRootMeta _tileset, string _imgSaveToRelatePath, string _matSaveToRelatePath)
        {
            if (_tileset.isUesdInRender)
            {
                return;
            }
            _imgSaveToRelatePath = Application.dataPath + _imgSaveToRelatePath;
            _matSaveToRelatePath = Application.dataPath + _matSaveToRelatePath;
            var imgFullPath = _imgSaveToRelatePath + "/" + _tileset.imgNameWithExtension;
            var matFullPath = _matSaveToRelatePath + "/" + Path.GetFileNameWithoutExtension(_tileset.imgNameWithExtension) + ".mat";

            FileUtil.DeleteFileOrDirectory(imgFullPath);
            FileUtil.DeleteFileOrDirectory(matFullPath);
            AssetDatabase.Refresh();
        }
Ejemplo n.º 5
0
        /// <summary>
        /// 根据在当前地图中指定的Gid,返回其所对应的TileMeta
        /// </summary>
        public static void GetTileMetaByGid(ITU_TmxRootMeta _mapMeta, int _gid, out ITU_TsxRootMeta _tilesetMeta, out ITU_TsxEachTileMeta _eachTileMeta)
        {
            foreach (var tilesetMeta in _mapMeta.tilsetList)
            {
                foreach (var tileMeta in tilesetMeta.eachTileMetaList)
                {
                    if (tileMeta.gid == _gid)
                    {
                        _tilesetMeta  = tilesetMeta;
                        _eachTileMeta = tileMeta;
                        return;
                    }
                }
            }

            throw new Exception(string.Format("Can't find tile meta with gid {0} in Txm file {1}", _gid, _mapMeta.fileName));
        }