2016-06-13 5 views
0

私はUnity Engineを使った初心者のプログラミングゲームです。私は「資産からアニメーションを読み込む方法」を検索しましたが、解決策は見つかりませんでした。資産からアニメーションをロードUnity

私はあなたが知っていればコライダー

void OnTriggerCollisionEnter2D(Collision2D coll){ 

    if(coll.gameObject.tag = "Player"){ 
     //try to load animation 

    } 

} 

のトリガーが私を助けて扱います!ありがとう

+0

? AssetBundleまたは単にプリファブとして?あなたはアセットのスクリーンショットを持っていますか? – Programmer

+0

まず、返信ありがとう:)。アニメーションファイル(.anim)のようなフォルダ/アニメーションフォルダに保存しました –

答えて

0

まず、Unityの基本的なものが不足しているように見えるので、私のソリューションがうまく動作するようになると思います。

OnTriggerCollisionEnter2Dは、Triggerを検出する有効なコールバック関数ではありません。

OnTriggerEnter2D(Collider2D coll)はあなたが探しているものです。

第2に、onTriggerでは何もしないでください。 Start()関数でアニメーションをロードし、OnTriggerEnter2D関数で再生します。

if(coll.gameObject.tag = "Player")は、if(coll.gameObject.tag == "Player")である必要があります。ダブル '='に注目してください。あなたは2倍の '='とは比較できません。効率的ではありません。可能であれば、coll.gameObject.tag ==の代わりにcoll.gameObject.CompareTagを使用してください。

Assets/Resources/Animationフォルダ

Animation animation; 
AnimationClip animanClip; 
string animName = "walk"; 

// Use this for initialization 
void Start() 
{ 
    //Load Animation 
    loadAnimation(); 
} 

void loadAnimation() 
{ 
    GameObject tempObj = Resources.Load("Animations/" + animName, typeof(GameObject)) as GameObject; 
    if (!tempObj == null) 
    { 
     Debug.LogError("Animation NOT found"); 
    } 
    else 
    { 
     animation = tempObj.GetComponent<Animation>(); 
     animanClip = animation.clip; 

     animation.AddClip(animanClip, animName); 
    } 
} 

public void OnTriggerEnter2D(Collider2D coll) 
{ 
    if (coll.gameObject.CompareTag("Player")) 
    { 
     animation.Play(animName); 
    } 
} 

にアニメーションを入れて最後に、これらのチュートリアルを勉強。アニメーションが保存されているどのように

Unity Scripting Tutorial

Unity Physics Tutorial

Other Unity Tutorials

+0

なぜGameObjectがnullを返すのですか?私はマッチの名前と方向を入力しています。 –

関連する問題