2016-04-22 4 views
0

アニメーショントリガパラメータが設定された後に自動的にリセットされるとの印象を受けました。ユニティアニメーションパラメータトリガがリセットされない

using UnityEngine; 
using System.Collections; 

public class Script : MonoBehaviour { 
    public GameObject go; 
    public bool mouseDown = false; 
    Vector2 mousePoint = new Vector2(); 
    Animator anim; 

    void Start() { 
     go = GameObject.Find ("SquareParent"); 
     anim = GameObject.Find("Square").GetComponent<Animator>(); 
    } 


    void Update() { 
     if (Input.GetMouseButton (0)) { 
      mouseDown = true; 
     } else { 
      mouseDown = false; 
      anim.ResetTrigger ("Trigger");// <----------- 
     } 
    } 

    void FixedUpdate(){ 
     mousePoint = new Vector2 (Input.mousePosition.x, Input.mousePosition.y); 
     mousePoint = Camera.main.ScreenToWorldPoint(mousePoint); 
     go.transform.position = new Vector2 (mousePoint.x,go.transform.position.y); 

     if (mouseDown) { 
      anim.SetTrigger ("Trigger"); 

     } 
    } 
} 

しかし、全体のアニメーションが再生されるまで、トリガは自身を「消費」しません、その後アニメーションは、それが停止する前に自分自身をもう一度プレーすることを決定!私はこれを防ぐための唯一の方法は手動でトリガーをリセットすることでしたが(上で指摘した線)、ブーリアンのように動作するようになりました。私は間違って何をしていますか?

+2

アニメーションが停止する前にもう一度再生されている理由は、エディタの 'Animator'ウィンドウのトランジションの長さのためです。アニメーションが停止する前にもう一度再生している理由は、エディター内の 'Animator'ウィンドウのトランジションの長さです。私は完全な答えを持っていないが、私は前に同様の問題を抱えていた。 –

+0

@ gjttt1優秀!物事は今もう一度正しく働いていますが、正直なところ、理由は分かりません。私がやったのは、リセットラインを削除して、トランジションに夢中になったのですが、正直言ってその長さや何も変えていませんでした。かなり奇妙です。これを回答として投稿し、私はあなたに信用を与えます。 – DrakeTruber

+0

私はこれをコメントしたときに私は少し忙しかったです。私は素早く見て、今晩は私の答えを更新しようとします。私は助けることができてうれしい。あなたがユニティでアニメーションのすべての公式チュートリアルをチェックアウトすることを確認してください。彼らは信じられないほど役に立つ! –

答えて

0

アニメーションが停止する前にもう一度再生されている理由は、アニメーターウィンドウのトランジションの長さがエディターにあるためです。

関連する問題