在扳机中按下并释放跟踪按钮

问题描述 投票:0回答:0

我使用 OnPointerDownOnPointerUpOnTriggerStayOnTriggerExit 跟踪其他对象飞过的按钮点击。这个想法是在通过按钮时销毁对象。以下是我尝试使用的代码:

public void OnPointerDown(PointerEventData eventData)
{
        _isMouseDown = true;
        if (!_isTriggered)
        {
                Debug.Log("Fail!");
        }
}

public void OnPointerUp(PointerEventData eventData)
{
        _isMouseDown = false;
}

private void OnTriggerStay(Collider collision)
{
        _isTriggered = true;
        if (_isMouseDown)
        {
                Destroy(collision.transform.gameObject);
                _isTriggered = false;
        }
}

private void OnTriggerExit(Collider collision)
{
        _isTriggered = false;
}

我有两个问题。第一个是,当我按住按钮时,对象会在触发时立即销毁。第二个问题是,如果我在对象飞到触发器之前按下按钮,会同时触发两个条件:Debug.Log 失败并销毁 OnTriggerStay 中的对象,目标是跟踪仅在触发器触发时点击和点击失败。

我假设我需要以某种方式跟踪按钮单击的持续时间,然后从鼠标向下更改为 false,以便触发器没有时间触发。这样做是否正确,例如,通过协程?

c# unity-game-engine triggers mouseevent onmouseclick
© www.soinside.com 2019 - 2024. All rights reserved.