Class BatchMusicTrackImporter
Builds UnityMusicTrackDefinition assets in batch from validated wizard input, with
rollback on failure. Mirrors BatchSoundEffectImporter but adds the music-specific advanced
loop fields (tail-preserving loop, loop region as time codes or musical bars, tail fade-out). The
BatchMusicTrackImportWindow only collects input; all inference, validation, advanced
settings serialization and asset creation live here so they can be unit tested without the window.
Inheritance
BatchMusicTrackImporter
Assembly: Serenity.UnityMusicPlayer.Infrastructure.Editor.dll
Syntax
public static class BatchMusicTrackImporter
Fields
AudioExtensions
File extensions Unity can import as an UnityEngine.AudioClip for music tracks.
Declaration
public static readonly IReadOnlyList<string> AudioExtensions
Field Value
Methods
BuildAsset(Item)
Materializes an BatchMusicTrackImporter.Item into a track definition, copying both the common metadata and
the advanced loop fields. Exposed (not private) so tests can assert the field mapping directly.
Declaration
public static UnityMusicTrackDefinition BuildAsset(BatchMusicTrackImporter.Item item)
Parameters
Returns
BuildAssetPath(string, string)
Declaration
public static string BuildAssetPath(string folderPath, string assetName)
Parameters
Returns
CollectExistingTrackIds()
Declaration
public static HashSet<string> CollectExistingTrackIds()
Returns
Declaration
public static BatchMusicTrackImporter.Result Create(BatchMusicTrackImporter.Input input)
Parameters
Returns
FileNameSafe(string)
Declaration
public static string FileNameSafe(string name)
Parameters
| Type |
Name |
Description |
| string |
name |
|
Returns
FindDuplicateAssetNames(IEnumerable<Item>)
Declaration
public static List<string> FindDuplicateAssetNames(IEnumerable<BatchMusicTrackImporter.Item> items)
Parameters
Returns
FindDuplicateIds(IEnumerable<Item>)
Declaration
public static List<string> FindDuplicateIds(IEnumerable<BatchMusicTrackImporter.Item> items)
Parameters
Returns
ImportExternalAudioFile(string, string, out string)
Copies a music file from anywhere on disk into destinationFolder, imports it,
and returns the resulting UnityEngine.AudioClip. Files already inside the project are loaded in
place. Returns null with error on failure.
Declaration
public static AudioClip ImportExternalAudioFile(string osPath, string destinationFolder, out string error)
Parameters
Returns
| Type |
Description |
| AudioClip |
|
IsAudioFile(string)
Declaration
public static bool IsAudioFile(string path)
Parameters
| Type |
Name |
Description |
| string |
path |
|
Returns
ItemFromClip(AudioClip)
Builds an item with inferred defaults for an already-imported project clip.
Declaration
public static BatchMusicTrackImporter.Item ItemFromClip(AudioClip clip)
Parameters
| Type |
Name |
Description |
| AudioClip |
clip |
|
Returns
SuggestAssetName(string)
Declaration
public static string SuggestAssetName(string fileNameOrPath)
Parameters
| Type |
Name |
Description |
| string |
fileNameOrPath |
|
Returns
SuggestId(string)
Suggests a runtime id from a file name (lower-cased, underscored). e.g. "Main Theme.ogg" -> "main_theme".
Declaration
public static string SuggestId(string fileNameOrPath)
Parameters
| Type |
Name |
Description |
| string |
fileNameOrPath |
|
Returns
SuggestTitle(string)
Suggests a human title from a file name, turning separators into spaces and title-casing words.
Declaration
public static string SuggestTitle(string fileNameOrPath)
Parameters
| Type |
Name |
Description |
| string |
fileNameOrPath |
|
Returns
ToProjectRelativePath(string)
Declaration
public static string ToProjectRelativePath(string osPath)
Parameters
| Type |
Name |
Description |
| string |
osPath |
|
Returns
Declaration
public static string Validate(BatchMusicTrackImporter.Input input)
Parameters
Returns
Full validation including destination folder, per-item rules, in-batch duplicates and collision
with existing track ids. existingTrackIds is injected for testability.
Declaration
public static string Validate(BatchMusicTrackImporter.Input input, HashSet<string> existingTrackIds)
Parameters
Returns
ValidateItem(Item)
Validates a single included item: identity, clip, and (when used) the advanced loop region.
Declaration
public static string ValidateItem(BatchMusicTrackImporter.Item item)
Parameters
Returns
ValidateLoopRegion(Item)
Validates the loop region for an item that uses it, in whichever authoring mode is active.
Returns null when the region is usable.
Declaration
public static string ValidateLoopRegion(BatchMusicTrackImporter.Item item)
Parameters
Returns