一定要調(diào)用AssetDatabase.ImportAsset 重新導(dǎo)入資源;否則這里對資源的更改,在工程視圖下的文件不會生效!
// 切割動畫文件. 獲取模型中的動畫文件茴丰。
// https://docs.unity3d.com/ScriptReference/ModelImporter.html
static void CutModelAnimation ()
{
AnimationClipConfig config = new AnimationClipConfig ();
ModelImporter mi = ModelImporter.GetAtPath (config.mModelName) as ModelImporter;
Debug.LogWarning("一定要調(diào)用AssetDatabase.ImportAsset 重新導(dǎo)入資源;否則這里對資源的更改,在工程視圖下的文件不會生效!") ;
if (!mi.importAnimation)
{
mi.importAnimation = true;
AssetDatabase.ImportAsset (config.mModelName);
}
ModelImporterClipAnimation[] animations = mi.clipAnimations;
TakeInfo[] takeInfos = mi.importedTakeInfos;
DebugFormat.LogWarning (config.mModelName, takeInfos.Length);
if (takeInfos == null || takeInfos.Length == 0)
return;
DebugFormat.Log (takeInfos[0].name,takeInfos[0].defaultClipName,takeInfos[0].startTime,takeInfos[0].stopTime);
// 設(shè)置動畫類型
mi.animationType = ModelImporterAnimationType.Generic;
mi.generateAnimations = ModelImporterGenerateAnimations.GenerateAnimations;
ModelImporterClipAnimation[] cuttedAnimations = new ModelImporterClipAnimation[config.mConfigs.Count];
AnimationClipData d;
for (int i = 0; i < cuttedAnimations.Length; i++)
{
d = config.mConfigs [i];
cuttedAnimations [i] = CutAnimationClip (d.mClipName,d.mStartFrame,d.mEndFrame,d.mLoop);
}
mi.clipAnimations = cuttedAnimations;
// 一定要調(diào)用AssetDatabase.ImportAsset 重新導(dǎo)入資源骑疆,否則這里對資源的更改,對工程視圖下的文件不會生效替废。
Debug.LogWarning("一定要調(diào)用AssetDatabase.ImportAsset 重新導(dǎo)入資源箍铭;否則這里對資源的更改,在工程視圖下的文件不會生效!") ;
AssetDatabase.ImportAsset (config.mModelName);
AssetDatabase.Refresh ();
}