当鼠标进入并离开我的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