AnimationClip获取关键帧信息

1,关键帧数据都保存在AnimationCurve上,所以首先要获取到这个

复制代码
public static AnimationCurve GetAnimCurve(AnimationClip clip, string path, string propName)
{
    EditorCurveBinding[] bindings = AnimationUtility.GetCurveBindings(clip);
    foreach (var b in bindings)
    {
        if (b.path == path)
        {
            //Debug.Log($"path:{b.path}, propName:{b.propertyName}, discrete:{b.isDiscreteCurve}, pptr:{b.isPPtrCurve}");
            if (b.propertyName == propName)
            {
                var result = AnimationUtility.GetEditorCurve(clip, b);
                return result;
            }
        }
    }
    return null;
}
复制代码

path和propName

 

2, 关键帧数据

复制代码
public static void PrintCurve(AnimationCurve curve)
{
    Debug.Log($"preWrap:{curve.preWrapMode}, postWrap:{curve.postWrapMode}, kfCnt:{curve.length}");

    for (var i = 0; i < curve.keys.Length; ++i)
    {
        var kf = curve.keys[i];
        Debug.Log($"keyFrame:{i}, t:{kf.time}, v:{kf.value}, mode:{kf.weightedMode}, in:{kf.inTangent}, inW:{kf.inWeight}, out:{kf.outTangent}, outW:{kf.outWeight}");
    }
}
复制代码

 

posted @   yanghui01  阅读(42)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 因为Apifox不支持离线,我果断选择了Apipost!
· 通过 API 将Deepseek响应流式内容输出到前端
历史上的今天:
2023-05-17 循环语法备忘
2023-05-17 table常用工具函数 - 表用法
2023-05-17 table常用工具函数 - list用法
点击右上角即可分享
微信分享提示