在 unity2D 中的 onMouseDown() 函数之间等待一段时间

Wait for some time in between onMouseDown() function in unity2D

我已经统一构建了这个 2D 项目,您可以在其中点击块,然后使用 onMouseDown() 函数将其销毁。我的问题是在点击一个方块后它被破坏了,我怎样才能让玩家等待一定的时间才能点击游戏中的另一个方块。我试过使用 PlayerPrefs 并从某个浮点变量中减去 Time.deltaTime 但它没有用。

注意:所有方块共享同一个销毁脚本!!!

如果它们共享相同的脚本,您可以从定义静态布尔变量和静态事件开始,比如:

public static bool isLockedDown = false;
public static event Action onBlockDestroyed;

然后,在销毁功能上,首先检查一下这个锁定。如果这是 false,则销毁,将锁转为 true,并调用将由另一个脚本读取的静态侦听器,该脚本将启动一个协程,在给定的秒数后将此静态锁转为 false。

public class Block : MonoBehaviour {

    void DestroyBlock()
    {
        if(isLockedDown)
            return;

        isLockedDown = true;
        onBlockDestroyed.Invoke();
        ////destroy block///
    }
}

public classBlockManager : MonoBehaviour {
    void Awake()
    {
        Block.onBlockDestroyed += BeginUnlocking
    }

    void BeginUnlocking()
    {
        StartCoroutine(UnlockTimer);
    }

    IEnumerator UnlockTimer()
    {
        yield return new WaitForSeconds(1f);
        BLock.isLockedDown = false;
    }
}
float waitTime = 1.5f;
static float lastClickTime = float.NegativeInfinity;

void OnMouseDown ()
{
    float time = Time.time;
    if( time > ( lastClickTime + waitTime ) )
    {
        lastClickTime = time;
        DestroyThisBlock();
    }
}