AnimationCurveがScriptから作れることを知った。
今までScriptでつくろうだなんて思わなかっただけだけれど
public AnimationCurve curve;
void Awake()
{
Keyframe keyFrame1 = new Keyframe(0, 0, 0f, 0f);
Keyframe keyFrame2 = new Keyframe(1, 1, 0f, 0);
curve = new AnimationCurve(keyFrame1, keyFrame2);
}
Keyframeの引数はtime,value,inTangent,outTangent
AnimationCurveの引数はKeyFrameの配列
左が(0, 0, 0, 1) (1, 1, 1, 0)
真ん中(0, 0, 0, 0) (1, 1, 0, 0)
右(0, 0, 0, -1) (1, 1, -1, 0)
こんな感じでScriptからアニメーションカーブを作れる・・・・あまり必要はないかもだけれど・・・。
publicにしてインスペクタで好きにカーブを作った方があきらかに手っ取り早いし・・・。
ちなみに値を取得するときは
float value = curve2.Evaluate(time); // timeは秒数
で取得できる
###AnimationCurve使いどころとしては・・・
iTweenとかのeaseTypeにないアニメーションをしたい場合や
iTweenを使わないあるいは使えない箇所(TimeScaleが0の時のアニメーションとか)
TimeScaleが0とのきはUpdate内で、Time.deltaTimeではなくて
Time.realtimeSinceStartupをつかってカーブの値を取得すればたとえTimeScaleが0でも
curveの通りに動作できます。
NGUIのTweenはそういう機能があるんだけどな〜。