我正在尝试对我的角色和动画循环进行 AoE 爆炸,但碰撞箱仅保留在第一个循环中(我不希望它循环)

问题描述 投票:0回答:1
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class AoESelfDetonate : MonoBehaviour
{
    public bool CanAoE = true;
    public bool isAoE = false;
    public float AoECoolDown = 5f;

    // Start is called before the first frame update
    void Start()
    {
    }

    // Update is called once per frame
    void Update()
    {
        if (Input.GetMouseButtonDown(2))
        {
            Debug.Log("Button Down");

            StartCoroutine(CooldownNoHit());
            
            if (CanAoE == true)
            {
                Debug.Log("Can AoE");

                CanAoE = false;
                isAoE = true;
                Animator anim = GetComponent<Animator>();
                anim.SetTrigger("Explode");

                StartCoroutine(ResetAttackCooldown());
            }
        }
    }

    void OnCollisionEnter2D(Collision2D collision) 
    {
        Debug.Log("On Hit");

        if (collision.gameObject.CompareTag("Enemy") && isAoE == true) 
        { 
            Destroy(collision.gameObject);

            Debug.Log("On Destroy");
        } 
    }

    IEnumerator ResetAttackCooldown()
    {
        yield return new WaitForSeconds(AoECoolDown);
        CanAoE = true;
    }

    IEnumerator CooldownNoHit()
    {
        isAoE = true;
        yield return new WaitForSeconds(0.60f);
        isAoE = false;
    }
}

每当我按下用于播放动画的按钮时,它都会播放,但是它会一直播放,直到我停止代码。应该是当按下按钮时动画播放一次然后停止几秒钟。另外,我希望按下的按钮是“E”,但我也不知道该怎么做。碰撞盒工作正常,一切都只是动画。如果这是统一动画师的问题,那么有人可以尝试帮助我(我是说尝试帮助我,因为我不提供动画师的图像)

编辑:Hitbox 也不起作用

c# unity-game-engine animation
1个回答
0
投票

动画剪辑 (.anim) 具有循环属性。这是显示它的文档

如果动画文件是您头像的一部分(如不是独立的 .anim 资源文件),则转到头像的导入设置,然后在“动画”选项卡下,单击列表中的相关动画,您应该会看到下面检查了循环/循环时间属性。如果它是一个独立的资源,只需单击该资源,检查器也应该显示相同的“循环/循环时间”属性。取消选中它,这将确保当动画器状态播放时,它将播放一次。是否完成动画,取决于您如何设置状态(例如退出时间等)。

© www.soinside.com 2019 - 2024. All rights reserved.