mask | 用于保存遮罩值的目标 AvatarMask。 |
将当前遮罩设置从剪辑复制到 AvatarMask。
写入 AssetPostprocessor 时,使用此方法从剪辑配置中复制 AvatarMask 以便进行修改。
注意:您需要使用 ModelImporterClipAnimation.ConfigureClipFromMask 将 AvatarMask 应用回 ModelImporterClipAnimation
另请参阅:ModelImporterClipAnimation.ConfigureClipFromMask。
using UnityEditor;
using UnityEngine;
public class CopyAvatarMask : AssetPostprocessor
{
void OnPreprocessAnimation()
{
var modelImporter = assetImporter as ModelImporter;
//Create a new AvatarMask to edit the mask
var mask = new AvatarMask();
var clips = modelImporter.clipAnimations;
//Acquire the mask from the clip
clips[0].ConfigureMaskFromClip(ref mask);
//Filter out the first non-root (0) bone
mask.SetTransformActive(1, false);
//Apply the mask back to the clip
clips[0].ConfigureClipFromMask(mask);
//Apply the clips back to the ModelImporter
modelImporter.clipAnimations = clips;
//Destroy the AvatarMask since we're not using it anymore
Object.DestroyImmediate(mask);
}
}