前提・実現したいこと
AnimatorのパラメーターであるBool値をIdle状態からAttack状態に切り替える時はIdle→AttackのときにBool値をtrue、Attack→Idleのときにfalseにするとゲーム実行中もエラーを吐かずに動きます。
それと同じようにFloat値でIdle状態からWalk状態に切り替える時にIdle→WalkのときにFloat値をGreate 0.1f、Walk→IdleのときにLess 0.1fとすると一応動いてはいますが
'Zako1' AnimationEvent 'PlayStep' on animation 'ChomperWalkForward' has no receiver! Are you missing a component?
というエラーを吐きます。
Float値のGreate、Lessの値をどのようにすればエラーを吐かずに正常に動くのでしょうか?
ゲーム実行中のFloat値であるWalkingの値は1.0fです。
該当のソースコード
C#
1// アニメーション管理 2using System.Collections; 3using System.Collections.Generic; 4using UnityEngine; 5using UnityEngine.AI; 6using MySystem; 7 8namespace Characters.Enemy.Zako 9{ 10 public class ZakoAnimation : MonoBehaviour 11 { 12 private Animator _animator; 13 private NavMeshAgent _agent; 14 15 private bool IsDamaging { set { _animator.SetBool(EnumExtensions.ToStringFromEnum(EnumExtensions.ObjName.IsDamaging), value); } } 16 private float WalkingSpeed { set { _animator.SetFloat(EnumExtensions.ToStringFromEnum(EnumExtensions.ObjName.WalkingSpeed), _agent.velocity.sqrMagnitude); } } 17 private bool IsAttacking { set { _animator.SetBool(EnumExtensions.ToStringFromEnum(EnumExtensions.ObjName.IsAttacking), value); } } 18 19 // Start is called before the first frame update 20 void Start() 21 { 22 _animator = GetComponent<Animator>(); 23 _agent = GetComponent<NavMeshAgent>(); 24 } 25 26 // Update is called once per frame 27 void Update() 28 { 29// Walkアニメーションを実行 30 WalkingSpeed = _agent.velocity.sqrMagnitude; 31 } 32 33 public void IsDamage(bool value) { IsDamaging = value; } 34 public void IsAttack(bool value) { IsAttacking = value; } 35 } 36}
補足情報(FW/ツールのバージョンなど)
Windows10,Unity2019,VisualStudio2019
あなたの回答
tips
プレビュー