Unity3D - 是否可以通过脚本设置动画剪辑的属性?

Tom*_*Tom 2 c# animation unity-game-engine

我有一个立方体。当它生成时,它会从 0 的比例变为 5 的比例,从而赋予它生长的效果。

我的场景中生成了大约 100 个立方体。我希望每个立方体的最大比例是不同的大小(有点变化),但由于附加到我的立方体预制件的动画剪辑,立方体的最大尺寸将为 5(见图)。

有没有办法通过代码或其他方式将动画的缩放属性设置为随机?我已经尝试使用AnimatorAnimationClipAnimation但他们没有关于设置属性大小的方法或变量。

在此处输入图片说明

Dra*_*18s 5

是的,但不是。

这里的“是”是您可以进行一系列调用来获取数据并对其进行修改,修改仅允许作为编辑器脚本:您不能修改运行时播放器环境中的值。

请参阅文档:https : //docs.unity3d.com/ScriptReference/AnimationClip.SetCurve.html

注意:SetCurve 仅在运行时适用于旧版动画剪辑。对于非传统 AnimationClips,它是一个仅限编辑器的功能。

以下脚本示例展示了如何使用动画剪辑为游戏对象位置设置动画。使用 SetCurve() 将动画曲线设置到 AnimationClip 上。本示例将 x 偏移量从 1.0 向下移动到 0.0。

using UnityEngine;
using System.Collections;

[RequireComponent(typeof(Animation))]
public class ExampleClass : MonoBehaviour {
    public Animation anim;
    void Start() {
        anim = GetComponent<Animation>();
        AnimationCurve curve = AnimationCurve.Linear(0.0F, 1.0F, 2.0F, 0.0F);
        AnimationClip clip = new AnimationClip();
        clip.legacy = true;
        clip.SetCurve("", typeof(Transform), "localPosition.x", curve);
        anim.AddClip(clip, "test");
        anim.Play("test");
    }
}
Run Code Online (Sandbox Code Playgroud)