移動しているかどうかに応じて、ウォーキングアニメーションとスタンディングアニメーションを切り替える単純なAI(単純な楕円)を作成しようとしています。Unity3D - 移動に基づいてアニメーションの状態を変更する
私は既にAIを設定してプレーヤに向けるようにしていますが、アニメーションの状態を切り替える方法はわかりません。
私はtrue
場合は歩行アニメーションに切り替え、そしてfalse
場合は常任アニメーションに切り替えるように設定されている、「isWalking
」、アニメーターにBooleanパラメータを持っています。
私の問題は、オブジェクトが動いているかどうかをチェックする方法です。私は基本的にこのような何かをして、いくつかのコード書きたい :
If(object is moving)
{
isWalking == true;
}
else
{
isWalking == false;
}
を私は、Webで検索しましたが、私は解決策を見つけるしたことはありません。 私はrigidbody.IsSleeping()
を使ってオブジェクトがスリープ状態になっているかどうかを確認しましたが、使用方法の例は見つかりませんでした。
私はユニティとプログラミングの完全な初心者です。
ありがとうございます。 :)
The object, as shown in the inspector window
編集: 私はこのコードを試してみましたが、それと間違って何かがおそらくあります。 :/
はAnimator
クラスから
using UnityEngine;
using System.Collections;
public class aiscript : MonoBehaviour {
NavMeshAgent agent;
public Transform target;
public Animator anim;
Vector3 pos;
public GameObject monmon;
void Start()
{
pos = monmon.transform.position;
anim = GetComponent<Animator>();
agent = GetComponent<NavMeshAgent>();
}
void Update()
{
pos = monmon.transform.position;
Vector3 originalPosition = pos;
agent.SetDestination(target.position);
Vector3 difference = originalPosition - pos;
anim.SetBool("isWalking", difference.magnitude > 0.5f);
}
}
アニメーターウィンドウで 'isWalking'ブール変数のsccreenshotを送信しますか?これはあなたの質問に答えるのに役立ちます – Programmer