Allow any object to be an asset container:
- Asset containers are no longer restricted to the AnimatorController class when using the new GenericAssetContainer configuration field - The asset container will not be used if it is not a persistent asset
This commit is contained in:
@@ -26,10 +26,18 @@ namespace AnimatorAsCode.V1
|
||||
public Transform AnimatorRoot;
|
||||
public Transform DefaultValueRoot;
|
||||
public AnimatorController AssetContainer;
|
||||
public Object GenericAssetContainer;
|
||||
public string AssetKey;
|
||||
public IAacDefaultsProvider DefaultsProvider;
|
||||
public Dictionary<Type, object> AdditionalData; // Nullable
|
||||
|
||||
public Object GetPersistentAssetContainer()
|
||||
{
|
||||
var container = AssetContainer != null ? AssetContainer : GenericAssetContainer;
|
||||
if (container != null && EditorUtility.IsPersistent(container)) return container;
|
||||
return null;
|
||||
}
|
||||
|
||||
public AacConfiguration WithAdditonalData(Type key, object value)
|
||||
{
|
||||
var conf = this;
|
||||
@@ -413,7 +421,7 @@ namespace AnimatorAsCode.V1
|
||||
/// Removes all assets from the asset container matching the specified asset key.
|
||||
public void ClearPreviousAssets()
|
||||
{
|
||||
var allSubAssets = AssetDatabase.LoadAllAssetsAtPath(AssetDatabase.GetAssetPath(_configuration.AssetContainer));
|
||||
var allSubAssets = AssetDatabase.LoadAllAssetsAtPath(AssetDatabase.GetAssetPath(_configuration.GetPersistentAssetContainer()));
|
||||
foreach (var subAsset in allSubAssets)
|
||||
{
|
||||
if (subAsset.name.StartsWith($"zAutogenerated__{_configuration.AssetKey}__")
|
||||
|
||||
@@ -16,7 +16,7 @@ namespace AnimatorAsCode.V1
|
||||
var animatorController = new AnimatorController();
|
||||
animatorController.name = "zAutogenerated__" + component.AssetKey + "__" + suffix + "_" + Random.Range(0, Int32.MaxValue); // FIXME animation name conflict
|
||||
animatorController.hideFlags = HideFlags.None;
|
||||
if (component.AssetContainer != null) AssetDatabase.AddObjectToAsset(animatorController, component.AssetContainer);
|
||||
if (component.GetPersistentAssetContainer() != null) AssetDatabase.AddObjectToAsset(animatorController, component.GetPersistentAssetContainer());
|
||||
return animatorController;
|
||||
}
|
||||
|
||||
@@ -29,7 +29,7 @@ namespace AnimatorAsCode.V1
|
||||
{
|
||||
clip.name = "zAutogenerated__" + component.AssetKey + "__" + suffix + "_" + Random.Range(0, Int32.MaxValue); // FIXME animation name conflict
|
||||
clip.hideFlags = HideFlags.None;
|
||||
if (component.AssetContainer != null) AssetDatabase.AddObjectToAsset(clip, component.AssetContainer);
|
||||
if (component.GetPersistentAssetContainer() != null) AssetDatabase.AddObjectToAsset(clip, component.GetPersistentAssetContainer());
|
||||
return clip;
|
||||
}
|
||||
|
||||
@@ -38,7 +38,7 @@ namespace AnimatorAsCode.V1
|
||||
var clip = new BlendTree();
|
||||
clip.name = "zAutogenerated__" + component.AssetKey + "__" + suffix + "_" + Random.Range(0, Int32.MaxValue); // FIXME animation name conflict
|
||||
clip.hideFlags = HideFlags.None;
|
||||
if (component.AssetContainer != null) AssetDatabase.AddObjectToAsset(clip, component.AssetContainer);
|
||||
if (component.GetPersistentAssetContainer() != null) AssetDatabase.AddObjectToAsset(clip, component.GetPersistentAssetContainer());
|
||||
return clip;
|
||||
}
|
||||
|
||||
@@ -47,7 +47,7 @@ namespace AnimatorAsCode.V1
|
||||
var duplicated = (T)Object.Instantiate(assetToDuplicate);
|
||||
duplicated.name = "zAutogenerated__" + component.AssetKey + "__" + assetToDuplicate.name + "_" + Random.Range(0, Int32.MaxValue); // FIXME animation name conflict
|
||||
duplicated.hideFlags = HideFlags.None;
|
||||
if (component.AssetContainer != null) AssetDatabase.AddObjectToAsset(duplicated, component.AssetContainer);
|
||||
if (component.GetPersistentAssetContainer() != null) AssetDatabase.AddObjectToAsset(duplicated, component.GetPersistentAssetContainer());
|
||||
return duplicated;
|
||||
}
|
||||
|
||||
@@ -56,7 +56,7 @@ namespace AnimatorAsCode.V1
|
||||
var avatarMask = new AvatarMask();
|
||||
avatarMask.name = "zAutogenerated__" + component.AssetKey + "_" + fullLayerName + "__AvatarMask";
|
||||
avatarMask.hideFlags = HideFlags.None;
|
||||
if (component.AssetContainer != null) AssetDatabase.AddObjectToAsset(avatarMask, component.AssetContainer);
|
||||
if (component.GetPersistentAssetContainer() != null) AssetDatabase.AddObjectToAsset(avatarMask, component.GetPersistentAssetContainer());
|
||||
return avatarMask;
|
||||
}
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"name": "dev.hai-vr.animator-as-code.v1",
|
||||
"displayName": "Animator As Code",
|
||||
"version": "1.0.9906",
|
||||
"version": "1.0.9907",
|
||||
"unity": "2019.4",
|
||||
"description": "Animator As Code",
|
||||
"vrchatVersion" : "2022.1.1",
|
||||
|
||||
Reference in New Issue
Block a user