私が今のように使っているならば、代わりにGetKeyDown KeyDownキーを押すと何もしません。 しかし、もし私がOキーを押したときにGetKeyとKeyCode.Oを使用しているなら、文字が歩くのを止めますが、キーを離すと常にOキーを押し続ける必要があります。Update関数内でInput.GetKeyを一度押すようにするにはどうすればよいですか?
私がしたいのは、キーを一度クリックすると、キーを離してもキャラクターが歩行を停止し、キー "p"をクリックするとウォーキングが再開されます。
私は歩き続ける/一時停止の速度プロパティを使用している理由は、私が作ればということである。
gameObject.GetComponent<Animator>().Stop();
文字ストップ歩行が、その後のシーン/世界の残りの部分をに動いていますキャラクター。私が使用しようとしたときと:
gameObject.GetComponent<Animator>().Play();
それから私は、プレイ(「ウォーク」)のようなプレイでいくつかのパラメータを配置する必要がありますが、それはうまくいきませんでした。
私は、speedプロパティをpause/continueに使用することにしました。
using UnityEngine;
using System.Collections;
public class Ai : MonoBehaviour {
Animator _anim;
// Use this for initialization
void Start() {
_anim = GetComponent<Animator>();
}
// Update is called once per frame
void Update() {
if (Input.GetKey (KeyCode.Z)) {
_anim.speed = 20.0f;
}
if (Input.GetKeyDown ("o"))
gameObject.GetComponent<Animator>().speed = 0;
if(Input.GetKeyDown("p"))
gameObject.GetComponent<Animator>().speed = 2;
}
}
OK]をクリックしてそれを行う方法を見つけました。それが正しいのかどうかは分かりませんが、うまくいきます。空の状態になる前に作成したウインドウ>アニメーターでは、Walkと呼ばれ、デフォルトで設定されているため、ヒューマノイドウォークを使用してゲームを実行しているときは常にキャラクタが歩いています。今私は、それを停止し、ヒューマノイドを使用して、私は使用しているスクリプトで新しい空の状態を追加:Input.GetKeyDown(KeyCode.O)と_anim.Play( "停止");それは働いています。それはそれを行う良い方法ですか? –
いいですね。あなたが望むものに少し依存する。アイドル状態をデフォルト状態にすることもできます。また、アニメータでトランジションを行い、そこで作成できる変数にリンクさせることもできます。例えば。ブール 'isWalking'(または何でも)を作成し、アイドル状態からウォーク状態に' false-> true'遷移させることができます。その後、コード内でboolを変更します。アニメーターの設定方法については、このチュートリアルhttps://unity3d.com/learn/tutorials/topics/animation/animator-controller?playlist=17099と4をご覧ください。 –