Я пытаюсь изменить размер моего спрайта, когда мышь входит и покидает мой GameObject.
Попытка в основном дать ему эффект "onHover", поскольку, если я использую OnMouseOver, он получает повторные вызовы.
То, что происходит, - это то, что мой GameObject мигает, постоянно печатает «Вход и выход», и когда моя мышь щелкает по нему - иногда он не регистрирует щелчки.
Это как если бы изменение localScale как-то активировало и деактивировало его, вызывая перезапуск OnMouse?
Я добавлю, что мой GameObject имеет BoxCollider2d и Rigibody2D.
Итак, мой вопрос, как я могу получить эффект "mouseOver", вызывая OnMouseEnter и OnMouseExit только один раз?
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