Unity3d 碰撞自动攻击

Unity3d 碰撞自动攻击,unity3d,Unity3d,对于侧滚游戏,我需要攻击与我的玩家范围相冲突的敌人,以下是我的操作方法: void OnCollisionStay2D(Collision2D coll) { Enemy target = coll.gameObject.GetComponent <Enemy> (); if (target != null) { moving = false; anim.SetBool ("attack", true);

对于侧滚游戏,我需要攻击与我的玩家范围相冲突的敌人,以下是我的操作方法:

void OnCollisionStay2D(Collision2D coll) {
        Enemy target = coll.gameObject.GetComponent <Enemy> ();
        if (target != null) {
            moving = false;
            anim.SetBool ("attack", true);
            target.Damage (damageValue);
        }
    }
问题是玩家只攻击了一次,以后再也不会攻击了,我尝试在OnCollisionStay方法的末尾调试.Log(time.time),调试垃圾邮件在time.time>nextFire的时间之前停止

我在方法开始时尝试调试.Log,似乎在第一次攻击后1s-time.deltaTime左右发生的调试冻结之后不再调用OnCollisionStay


<> p>所以我不知道怎么做,基本上这里是一个1D侧滚动,你可以从右到左,这应该很简单,但是我没有得到它。

你可以考虑为武器创建一个射击速率,以便它可以同时改变一个子弹或连环射击。你可以控制它。也更喜欢光线投射而不是碰撞。有一个2D平台教程,但我非常喜欢来自Brackeys的

void OnCollisionStay2D(Collision2D coll) {
        Enemy target = coll.gameObject.GetComponent <Enemy> ();
        if (target != null && time.time > nextFire) {
            moving = false;
            anim.SetBool ("attack", true);
            target.Damage (damageValue);
            nextFire = Time.time + 1;//I set the cooldown to 1 second
        }
    }