unity OnTriggerStay2D里调用GetMouseButtonDown出现问题

img


照理说应该我每点击一次鼠标输出一个i,为什么有时候点击i输不出来了,也就是我点击的次数和他输出的次数不同


public class Test : MonoBehaviour
{
    private Vector3 mousepos;
    private Vector3 delta;
    private int i;
    private void Start()
    {
       
    }
    private void Update()
    {
        mousepos=Input.mousePosition;
        mousepos.z=0;
        transform.position=mousepos;
    }
    private void OnTriggerStay2D(Collider2D other)
    {
        if(Input.GetMouseButtonDown(0))
        {
            i++;
            Debug.Log(i);
        }
    }
   
}

你的代码有问题啊:1.你既然已经定义了mousepos变量,为什么update里又声明了一次?2.2D的位置根据鼠标变化写错了,直接mouseposition不需要转换。
这个我已经测试了,没有问题。

img

因为unity的所有脚本都在同一个线程下,循环执行
你点击太快,它还没执行到这,会把两次点击认为是同一次点击