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

时间:2018-01-16 18:44:02

标签: c# animation unity3d

我有一个立方体。当它产生时,它会从0的刻度动画到5的刻度,从而产生它正在增长的效果。

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

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

enter image description here

1 个答案:

答案 0 :(得分:3)

是的,但没有。

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

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

  

注意:SetCurve仅在运行时用于传统动画片段。对于非传统的AnimationClip,它是一个仅限编辑器的功能。

     

以下脚本示例显示如何使用动画片段为GameObject位置设置动画。使用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");
    }
}