当快速把鼠标移出unity会执行OnPoi…

首先这个问题我百度过,没有浏览到有用的信息。贴上代码:
    public void OnPointerEnter(PointerEventData eventData)
    {
        Debug.LogError("mouse enter");
    }
    public void OnPointerExit(PointerEventData eventData)
    {
        Debug.Log("mouse exit");
    }
在public class YouClass:MonoBehaviour, IPointerClickHandler, IPointerEnterHandler, IPointerExitHandler像这样unity就能自动执行 OnPointerExit  OnPointerEnter(图片要勾选Raycast Target)

程序正常运行应该是 鼠标移入图片 打印  mouse enter 移出 打印 mouse exit
当快速移出则 打印 mouse exit  mouse enter ,所以多执行了一次  OnPointerEnter

解决方法:
bool IsEnter = true;
bool IsExit = true;
public void OnPointerEnter(PointerEventData eventData)
{

        if (IsEnter)
        {
            Debug.LogError("mouse enter");
            IsEnter = false;
            IsExit = true;
}
}
public void OnPointerExit(PointerEventData eventData)
{
        if (IsExit)
        {
            Debug.Log("mouse exit");
            StartCoroutine(SleepExit());
            IsExit = false;
}
}

IEnumerator SleepExit()
    {
        yield return new WaitForSeconds(0.005f);
        IsEnter = true;
    }

就是认为在执行完 OnPointerExit后等一些时间执行 OnPointerEnter
我只是个菜鸟 欢迎有更好的方法一起学习下
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值