Unity的账户系统就是一坨大便。
修改 KeyFrame 时
AnimationCurve curve = AnimationUtility.GetEditorCurve(clip, curveBinding)
...
ModifyKey(curve)
...
当你通过一个函数调用来修改某个条 曲线( AnimationCurve ) 某个关键帧 ( KeyFrame ) 时。
private void ModifyKey(AnimationCurve curve)
{
KeyFrame[] keys = curve.keys;
for (int i = 0;i < keys;i++)
{
KeyFrame key = keys[i]
if (IsThatKey(key))
{
key.value = modify;
// 😄注意😄
// KeyFrame 是 Struct,因此如下行这样赋值
keys[i] = key;
break;
}
}
// 😄注意😄
// AnimationCurve 的 keys 是一个属性,而不是成员
// 在此处赋值才能修改成功
curve.keys = keys;
}
保存资源时
如果你使用 AssetDatabase.CreateAsset(anim, animPath);
来保持资源的话。
要注意 CreateAsset
在 animPath
对应的路径上已经存在文件时,不会更新资源!你需要
- 先
DeleteAsset
对应文件。 - 判断是否存在,然后给
animPath
添加序号(or其它)后缀。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。