unity攻击后停止移动
时间: 2023-09-04 16:08:54 浏览: 275
您可以在Unity中编写脚本来实现攻击后停止移动的功能。具体来说,您可以在攻击时使用动画事件或触发器来触发停止移动的动作。您也可以使用协程来暂停角色的移动,直到攻击完成。以下是一个示例代码,可以在攻击时暂停角色的移动:
```
public class AttackController : MonoBehaviour
{
public float attackDuration = 1f;
public float moveSpeed = 5f;
private bool isAttacking = false;
void Update()
{
if (!isAttacking)
{
// Move the character
transform.position += transform.forward * moveSpeed * Time.deltaTime;
}
}
public void StartAttack()
{
// Stop moving
isAttacking = true;
// Start the attack animation
GetComponent<Animator>().SetTrigger("Attack");
// Wait for the attack to finish
StartCoroutine(StopAttack());
}
IEnumerator StopAttack()
{
yield return new WaitForSeconds(attackDuration);
// Resume moving
isAttacking = false;
}
}
```
在上面的示例中,StartAttack() 方法会设置 isAttacking 变量为 true,然后触发攻击动画并开始一个协程来等待攻击完成。在 StopAttack() 协程中,等待一段时间后将 isAttacking 变量设置为 false,以便角色可以重新开始移动。您可以根据需要调整代码以适应您的游戏逻辑和需求。
阅读全文