protected string GetUniqueFileName(Object @object, string dirPath) { string fileName; switch (@object) { case NamedObject named: fileName = named.Name; break; case Prefab prefab: fileName = prefab.GetName(); break; case MonoBehaviour monoBehaviour: fileName = monoBehaviour.Name; break; default: fileName = @object.GetType().Name; break; } fileName = FileNameRegex.Replace(fileName, string.Empty); fileName = DirectoryUtils.GetMaxIndexName(dirPath, fileName); fileName = $"{fileName}.{@object.ExportExtension}"; return(fileName); }
public SkipExportCollection(IAssetExporter assetExporter, Object asset) { if (assetExporter == null) { throw new ArgumentNullException(nameof(assetExporter)); } if (asset == null) { throw new ArgumentNullException(nameof(asset)); } AssetExporter = assetExporter; Name = asset.GetType().Name; m_asset = asset; }
private Object ReadAsset(AssetStream stream, AssetInfo assetInfo, long offset, int size) { Object asset = Collection.AssetFactory.CreateAsset(assetInfo); if (asset == null) { return(null); } stream.BaseStream.Position = offset; if (Config.IsGenerateGUIDByContent) { byte[] data = stream.ReadBytes(size); asset.Read(data); using (MD5 md5 = MD5.Create()) { byte[] md5Hash = md5.ComputeHash(data); assetInfo.GUID = new UtinyGUID(md5Hash); } } else { stream.AlignPosition = offset; asset.Read(stream); long read = stream.BaseStream.Position - offset; if (read != size) { throw new Exception($"Read {read} but expected {size} for object {asset.GetType().Name}"); } } return(asset); }
public SkipExportCollection(DummyAssetExporter assetExporter, Object asset) : this(assetExporter, asset, asset.GetType().Name) { }