meta, expressionAvatar, expression の extract を復旧

This commit is contained in:
ousttrue
2021-04-06 15:08:37 +09:00
parent b0d9b5f54c
commit b62c123b66
15 changed files with 267 additions and 306 deletions

View File

@@ -85,124 +85,5 @@ namespace UniVRM10
});
}
}
// public void ExtractMeta()
// {
// this.ExtractAssets<UniVRM10.VRM10MetaObject>(MetaDirName, ".asset");
// var metaObject = this.GetExternalUnityObjects<UniVRM10.VRM10MetaObject>().FirstOrDefault();
// var metaObjectPath = AssetDatabase.GetAssetPath(metaObject.Value);
// if (!string.IsNullOrEmpty(metaObjectPath))
// {
// EditorUtility.SetDirty(metaObject.Value);
// AssetDatabase.WriteImportSettingsIfDirty(metaObjectPath);
// }
// AssetDatabase.ImportAsset(assetPath, ImportAssetOptions.ForceUpdate);
// }
// public void ExtractExpressions()
// {
// this.ExtractAssets<UniVRM10.VRM10ExpressionAvatar>(ExpressionDirName, ".asset");
// this.ExtractAssets<UniVRM10.VRM10Expression>(ExpressionDirName, ".asset");
// var expressionAvatar = this.GetExternalUnityObjects<UniVRM10.VRM10ExpressionAvatar>().FirstOrDefault();
// var expressions = this.GetExternalUnityObjects<UniVRM10.VRM10Expression>();
// expressionAvatar.Value.Clips = expressions.Select(x => x.Value).ToList();
// var avatarPath = AssetDatabase.GetAssetPath(expressionAvatar.Value);
// if (!string.IsNullOrEmpty(avatarPath))
// {
// EditorUtility.SetDirty(expressionAvatar.Value);
// AssetDatabase.WriteImportSettingsIfDirty(avatarPath);
// }
// AssetDatabase.ImportAsset(assetPath, ImportAssetOptions.ForceUpdate);
// }
// public Dictionary<string, T> GetExternalUnityObjects<T>() where T : UnityEngine.Object
// {
// return this.GetExternalObjectMap().Where(x => x.Key.type == typeof(T)).ToDictionary(x => x.Key.name, x => (T)x.Value);
// }
// public void SetExternalUnityObject<T>(UnityEditor.AssetImporter.SourceAssetIdentifier sourceAssetIdentifier, T obj) where T : UnityEngine.Object
// {
// this.AddRemap(sourceAssetIdentifier, obj);
// AssetDatabase.WriteImportSettingsIfDirty(this.assetPath);
// AssetDatabase.ImportAsset(this.assetPath, ImportAssetOptions.ForceUpdate);
// }
// public static void ClearExternalObjects<T>(this ScriptedImporter importer) where T : UnityEngine.Object
// {
// foreach (var extarnalObject in importer.GetExternalObjectMap().Where(x => x.Key.type == typeof(T)))
// {
// importer.RemoveRemap(extarnalObject.Key);
// }
// AssetDatabase.WriteImportSettingsIfDirty(importer.assetPath);
// AssetDatabase.ImportAsset(importer.assetPath, ImportAssetOptions.ForceUpdate);
// }
// public static void ClearExtarnalObjects(this ScriptedImporter importer)
// {
// foreach (var extarnalObject in importer.GetExternalObjectMap())
// {
// importer.RemoveRemap(extarnalObject.Key);
// }
// AssetDatabase.WriteImportSettingsIfDirty(importer.assetPath);
// AssetDatabase.ImportAsset(importer.assetPath, ImportAssetOptions.ForceUpdate);
// }
// private static T GetSubAsset<T>(this ScriptedImporter importer, string assetPath) where T : UnityEngine.Object
// {
// return importer.GetSubAssets<T>(assetPath)
// .FirstOrDefault();
// }
// public static IEnumerable<T> GetSubAssets<T>(this ScriptedImporter importer, string assetPath) where T : UnityEngine.Object
// {
// return AssetDatabase
// .LoadAllAssetsAtPath(assetPath)
// .Where(x => AssetDatabase.IsSubAsset(x))
// .Where(x => x is T)
// .Select(x => x as T);
// }
// private static void ExtractFromAsset(UnityEngine.Object subAsset, string destinationPath, bool isForceUpdate)
// {
// string assetPath = AssetDatabase.GetAssetPath(subAsset);
// var clone = UnityEngine.Object.Instantiate(subAsset);
// AssetDatabase.CreateAsset(clone, destinationPath);
// var assetImporter = AssetImporter.GetAtPath(assetPath);
// assetImporter.AddRemap(new AssetImporter.SourceAssetIdentifier(subAsset), clone);
// if (isForceUpdate)
// {
// AssetDatabase.WriteImportSettingsIfDirty(assetPath);
// AssetDatabase.ImportAsset(assetPath, ImportAssetOptions.ForceUpdate);
// }
// }
// public static void ExtractAssets<T>(this ScriptedImporter importer, string dirName, string extension) where T : UnityEngine.Object
// {
// if (string.IsNullOrEmpty(importer.assetPath))
// return;
// var subAssets = importer.GetSubAssets<T>(importer.assetPath);
// var path = string.Format("{0}/{1}.{2}",
// Path.GetDirectoryName(importer.assetPath),
// Path.GetFileNameWithoutExtension(importer.assetPath),
// dirName
// );
// var info = importer.SafeCreateDirectory(path);
// foreach (var asset in subAssets)
// {
// ExtractFromAsset(asset, string.Format("{0}/{1}{2}", path, asset.name, extension), false);
// }
// }
}
}