public void UpdateAssetLabels() {
AssetImporter importer = AssetImporter.GetAtPath(filename);
List<string> labels = new List<String>();
// Strip labels we're currently managing.
foreach (string label in AssetDatabase.GetLabels(importer)) {
if (!(label.ToLower().StartsWith(LABEL_PREFIX) ||
label.ToLower().Equals(ASSET_LABEL))) {
labels.Add(label);
}
}
// Add / preserve the label that indicates this asset is managed by
// this module.
labels.Add(ASSET_LABEL);
// Add labels for the metadata in this class.
if (!String.IsNullOrEmpty(versionString)) {
labels.Add(LABEL_PREFIX + TOKEN_VERSION + versionString);
}
if (targets != null && targets.Length > 0) {
labels.Add(LABEL_PREFIX + TOKEN_TARGETS +
String.Join(Char.ToString(FIELD_SEPARATOR[0]),
targets));
}
if (isManifest) {
labels.Add(LABEL_PREFIX + FILENAME_TOKEN_MANIFEST);
}
AssetDatabase.SetLabels(importer, labels.ToArray());
}