Le personnage étant humanoïde, son animation peut être utilisée sur d'autres modèles, c'est-à-dire qu'il peut partager un ensemble d'animations de modèle, mais avez-vous constaté que l'animation est liée au modèle fbx? Peu importe, vous pouvez sélectionner ces fichiers d'animation et appuyez sur Contrl + D pour les extraire, puis vous pouvez supprimer l'intégralité du modèle fbx. L'animation nouvellement générée n'est plus basée sur fbx, ce qui peut réduire considérablement la taille des ressources.
using UnityEngine;
using UnityEditor;
using System.Collections;
using System.IO;
public class AnimationClipTool
{
[MenuItem("AnimationClip/GetFilteredtoAnim &1", true)]
static bool NotGetFiltered()
{
return Selection.activeObject;
}
[MenuItem("AnimationClip/GetFilteredtoAnim &1")]
static void GetFiltered()
{
string targetPath = Application.dataPath + "/AnimationClip";
if (!Directory.Exists(targetPath))
{
Directory.CreateDirectory(targetPath);
}
Object[] SelectionAsset = Selection.GetFiltered(typeof(Object), SelectionMode.Unfiltered);
Debug.Log(SelectionAsset.Length);
foreach (Object Asset in SelectionAsset)
{
AnimationClip newClip = new AnimationClip();
EditorUtility.CopySerialized(Asset, newClip);
AssetDatabase.CreateAsset(newClip, "Assets/AnimationClip/" + Asset.name + ".anim");
}
AssetDatabase.Refresh();
}
}
Sélectionnez le clip d'animation, cliquez sur l'option AnimationClip / GetFilteredtoAnim dans la barre de menu (touche de raccourci ALT + 1), le clip d'animation généré par le code apparaîtra dans le dossier Assets / AnimationClip
(Si vous sélectionnez d'autres fichiers de ressources au lieu de clips d'animation, les types de source et de destination ne correspondent pas à l'erreur apparaîtra)