Unity 脚本实现精灵攻击动画切换功能
你可以使用Unity的Animator组件和AnimatorController来实现这个功能。首先,创建一个AnimatorController并将其分配给精灵的Animator组件。\n\n然后,在AnimatorController中创建两个状态,一个用于站立动画A,一个用于攻击动画J。将站立动画A设置为初始状态,并在转换条件中添加一个参数,例如"Attack"。将攻击动画J设置为从站立动画A状态转换的目标状态,并将"Attack"参数设置为转换条件。\n\n接下来,在脚本中添加以下代码:\n\nc#\nusing UnityEngine;\n\npublic class SpriteController : MonoBehaviour\n{\n private Animator animator;\n\n private void Start()\n {\n animator = GetComponent<Animator>();\n }\n\n private void Update()\n {\n if (Input.GetKeyDown(KeyCode.J))\n {\n if (!animator.GetBool("Attack"))\n {\n animator.SetBool("Attack", true);\n }\n }\n }\n\n public void OnAttackAnimationComplete()\n {\n animator.SetBool("Attack", false);\n }\n}\n\n\n在Update函数中,我们检测是否按下了J键,并且当前不在攻击动画中。如果是,则将"Attack"参数设置为true,触发状态转换。\n\n在AnimatorController中的攻击动画J状态上,添加一个事件,当动画播放完成时调用"OnAttackAnimationComplete"函数。\n\n最后,在脚本中实现"OnAttackAnimationComplete"函数,将"Attack"参数设置为false,使动画自动切换回站立动画A状态。\n\n确保将该脚本附加到精灵对象上,并将Animator组件正确分配给animator变量。
原文地址: https://www.cveoy.top/t/topic/pNHo 著作权归作者所有。请勿转载和采集!