OnMouseEnter / Exit повторяется вместо одного раза - PullRequest
0 голосов
/ 17 июня 2019

Я пытаюсь изменить размер моего спрайта, когда мышь входит и покидает мой 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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...