Name | Description |
---|---|
relativePath | The path to the game object this curve applies to. relativePath is formatted similar to a pathname, e.g. "root/spine/leftArm". If relativePath is empty it refers to the game object the animation clip is attached to. |
type | The class type of the component that is animated |
propertyName | The name or path to the property being animated |
curve | The animation curve |
Assigns the curve to animate a specific property.
If curve is null the curve will be removed. If a curve already exists for that property, it will be replaced.
Common names are: "localPosition.x", "localPosition.y", "localPosition.z", "localRotation.x", "localRotation.y", "localRotation.z", "localRotation.w" "localScale.x", "localScale.y", "localScale.z".
For performance reasons Transform position, rotation and scale can only be animated as one property.
// Animates the x coordinate of a transform position
function Start () {
// Create the curve
var curve : AnimationCurve = AnimationCurve.Linear(0, 1, 2, 3);
// Create the clip with the curve
var clip : AnimationClip = new AnimationClip();
clip.SetCurve("", Transform, "localPosition.x", curve);
// Add and play the clip
animation.AddClip(clip, "test");
animation.Play("test");
}
@script RequireComponent(Animation)
using UnityEngine;
using System.Collections;
[RequireComponent(typeof(Animation))]
public class example : MonoBehaviour {
void Start() {
AnimationCurve curve = AnimationCurve.Linear(0, 1, 2, 3);
AnimationClip clip = new AnimationClip();
clip.SetCurve("", typeof(Transform), "localPosition.x", curve);
animation.AddClip(clip, "test");
animation.Play("test");
}
}
import UnityEngine
import System.Collections
[RequireComponent(Animation)]
class example(MonoBehaviour):
def Start():
curve as AnimationCurve = AnimationCurve.Linear(0, 1, 2, 3)
clip as AnimationClip = AnimationClip()
clip.SetCurve('', Transform, 'localPosition.x', curve)
animation.AddClip(clip, 'test')
animation.Play('test')
Material properties can be animated using the property name exported in the shader. Common property names are: "_MainTex", "_BumpMap", "_Color", "_SpecColor", "_Emission". How to animate different material property types:
// Animate color's alpha and main texture's horizontal offset.
function Start () {
var clip = new AnimationClip ();
clip.SetCurve ("", Material, "_Color.a",
AnimationCurve (Keyframe(0, 0, 0, 0), Keyframe(1, 1, 0, 0)));
clip.SetCurve ("", Material, "_MainTex.offset.x",
AnimationCurve.Linear(0, 1, 2, 3));
animation.AddClip (clip, clip.name);
animation.Play(clip.name);
}
@script RequireComponent(Animation)
using UnityEngine;
using System.Collections;
[RequireComponent(typeof(Animation))]
public class example : MonoBehaviour {
void Start() {
AnimationClip clip = new AnimationClip();
clip.SetCurve("", typeof(Material), "_Color.a", new AnimationCurve(new Keyframe(0, 0, 0, 0), new Keyframe(1, 1, 0, 0)));
clip.SetCurve("", typeof(Material), "_MainTex.offset.x", AnimationCurve.Linear(0, 1, 2, 3));
animation.AddClip(clip, clip.name);
animation.Play(clip.name);
}
}
import UnityEngine
import System.Collections
[RequireComponent(Animation)]
class example(MonoBehaviour):
def Start():
clip as AnimationClip = AnimationClip()
clip.SetCurve(, Material, '_Color.a', AnimationCurve(Keyframe(0, 0, 0, 0), Keyframe(1, 1, 0, 0)))
clip.SetCurve(, Material, '_MainTex.offset.x', AnimationCurve.Linear(0, 1, 2, 3))
animation.AddClip(clip, clip.name)
animation.Play(clip.name)