【发布时间】:2019-05-27 10:15:36
【问题描述】:
谁能帮我解决我遇到的这个问题?
*第一个脚本:
public static bool attacking;
public Collider2D attackTrigger;
private void Awake()
{
attackTrigger.enabled = false;
}
private void Update()
{
if (attacking == true)
{
Debug.Log("Box Collider Enabled");
attackTrigger.enabled = true;
StartCoroutine(DisableCollider());
}
}
IEnumerator DisableCollider()
{
yield return new WaitForSeconds(1);
attacking = false;
attackTrigger.enabled = false;
Debug.Log("Box Collider Disabled");
}
*第二个脚本:
public float damage = .10f;
private void OnTriggerEnter2D(Collider2D collision)
{
if(collision.isTrigger!=true && collision.CompareTag("Enemy"))
{
Debug.Log("Enemy is Damaged");
EHealthBar.TakeDamage(damage);
}
}
我正在尝试让我的玩家角色使用碰撞攻击敌人,它确实有效,玩家确实对敌人造成了伤害,但只有当敌人的盒子对撞机再次进入我的攻击时它才会起作用。
如果敌人已经在我的攻击区域内,并且附加了一个 2d 盒子碰撞,那么敌人不会受到伤害,这不是我想要的。
我可以将其更改为 OnTriggerStay2D,但敌人会继续受到伤害,直到对撞机再次被禁用。愿意帮忙吗?
【问题讨论】: