Unity5学習メモ - O氏用ページ

AnimationClipのエラー

ソースコード

public class myscript : MonoBehaviour {

	void Start () {
		GameObject.Find ("GUI Text").GetComponent<GUIText>().text = "AnimationClip sample";
		AnimationClip clip = new AnimationClip ();
		AnimationCurve curve = AnimationCurve.Linear (0f, 3f, 3f, 3f);
		Keyframe key = new Keyframe (1.5f, 7f);
		curve.AddKey (key);
		clip.SetCurve ("", typeof(Transform), "localPosition.z", curve);
		clip.wrapMode = WrapMode.Loop;
		GetComponent<Animation>().AddClip (clip, "clip1");
		GetComponent<Animation>().Play ("clip1");
	}

	void Update () {
		transform.Rotate (1f, 1f, 1f);
	}
}

上記の
GetComponent<Animation>().AddClip (clip, "clip1");
GetComponent<Animation>().Play ("clip1");
ってところがエラーでてます。

エラー内容はやんわりとしか覚えていませんが、
  • Legasyというのにしないといけない?
  • Animationが見つからない?
なんかそんな感じでした。

成功例

ソースコード

using UnityEngine;
using System.Collections;

public class Animation2 : MonoBehaviour {

    // Use this for initialization
    void Start () {
        GameObject.Find("GUI Text").GetComponent<GUIText>().text = "AnimationClip sample";
        AnimationClip clip = new AnimationClip();
        AnimationCurve curve = AnimationCurve.Linear(0f, 3f, 3f, 3f);
        Keyframe key = new Keyframe(1.5f, 7f);
        curve.AddKey(key);
        clip.SetCurve("", typeof(Transform), "localPosition.z", curve);
        clip.wrapMode = WrapMode.Loop;
        GetComponent<Animation>().AddClip(clip, "clip1");
        GetComponent<Animation>().Play("clip1");
    }

    // Update is called once per frame
    void Update () {
        transform.Rotate(1f, 1f, 1f);
    }
}