OnMouseEnter /退出重复而不是仅重复一次

时间:2019-06-17 05:55:40

标签: unity3d

当鼠标进入并离开我的GameObject时,我试图切换精灵的大小。

基本上尝试赋予它“ onHover”效果,因为如果我使用OnMouseOver,它将得到重复的调用。

发生的事情是我的GameObject闪烁,不断打印Entering和Exiting,当我的鼠标单击时-有时它没有记录点击。

好像localScale更改以某种方式激活和停用了它,导致OnMouse的重新触发?

我要补充一点,我的GameObject具有BoxCollider2d和Rigibody2D。

所以我的问题是,如何只调用一次OnMouseEnter和OnMouseExit来产生“ mouseOver”效果?

    public void OnMouseDown()
    {
        if (Input.GetMouseButtonDown(0))
        {
            Debug.Log("MOUSE CLICKED!");
            RaycastHit raycastHit;

            Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);

            if (Physics.Raycast(ray, out raycastHit))
            {

                Debug.Log("RAYCAST HIT!");
                transform.localScale += new Vector3(0.1F, 0, 0);
                //GetComponent<SpriteRenderer>().color;

            }
        }
    }

    public void OnMouseEnter()
    {
        Debug.Log("MOUSE ENTEREd!");
        transform.localScale += new Vector3(2f, 2f, 2f);
    }

    public void OnMouseOver()
    {
        //Debug.Log("MOUSE OVER!");
        //transform.localScale += new Vector3(0.1F, 0, 0);
    }

    public void OnMouseExit()
    {
        Debug.Log("MOUSE EXIT!");
        transform.localScale -= new Vector3(2f, 2f, 2f);
    }

从2017年开始发现以下问题: https://answers.unity.com/questions/1396456/enlarge-gameobject-when-i-mouse-over-the-specific.html

0 个答案:

没有答案