私はそれをSoldierControllerという新しいコントローラーを作成し、インスペクターのAnimatorコンポーネントの下にあるCharacter Controllerにドラッグしました。なぜキャラクターのための新しいアニメーターコントローラーを作成するとき、キャラクターは右に歩いていないのですか?
は、ルートモーション
を適用するオフに続いて三人のキャラクターに新しいスクリプトは、スクリプトの兵士と呼ばれる付属。
その後、私はそれに二つの新しい国を追加アニメーターコントローラ設定:ウォーク、アイドルを。 ヒューマノイドイドルとヒューマノイドウォーク。
次に、デフォルトの開始状態がアイドルになるようにしました。 StateMachineのデフォルト状態を設定します。
私はウォークからアイドルに移行しました。このようにしてWを押すと少し歩き始めるが、それはキャラクターを動かし続けるが、ウォーキングアニメーションはない。
もし私がこの遷移を削除してアイドルからウォークに移行すると、Wを押すとウォーキングが行われますが、Wキーを離せばアイドリングしてから2〜3秒後にキャラクターが歩いて行きますそれは動くことなく歩くことを生き生きとさせ、私はアイドル時に何かを自動的に開始していません。
キャラクターには別のアニメーターコントローラーがありましたが、新しいコントローラーを作成して使用しました。
とスクリプト:すべての
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Soldier : MonoBehaviour
{
private bool _isWalking = false;
private Animator anim;
// Use this for initialization
void Start()
{
anim = GetComponent<Animator>();
}
// Update is called once per frame
void Update()
{
var x = Input.GetAxis("Horizontal") * Time.deltaTime * 150.0f;
transform.Rotate(0, x, 0);
if (Input.GetKey("w"))
{
if (!_isWalking)
{
_isWalking = true;
anim.Play("Walk");
}
var z = Input.GetAxis("Vertical") * Time.deltaTime * 3.0f;
transform.Translate(0, 0, z); // Only move when "w" is pressed.
}
else
{
if (_isWalking)
{
anim.Play("Idle");
}
_isWalking = false;
}
}
}
私は、アイドル状態からウォークイン状態への遷移を削除しても正常に動作することを発見しました。 しかし、私は移行と使用パラメータを保持し、スクリプトのパラメータを更新することができ、それも動作することに気づいた。では、いつパラメータ/ sを使うべきですか?そして、そうでない時は? –