我有一个立方体。当它产生时,它会从0的刻度动画到5的刻度,从而产生它正在增长的效果。
我有大约100个立方体被生成到我的场景中。我希望每个立方体的最大比例尺寸不同(有点多样),但由于附加到我的立方体预制件的动画剪辑,立方体的最大尺寸将为5(见图片)。
有没有办法通过代码或其他方法我可以将动画的scale属性设置为随机?我已尝试使用Animator
,AnimationClip
和Animation
,但他们没有关于设置属性大小的方法或变量。
答案 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"); } }