OnMouseOver работает по-разному на тех же объектах - PullRequest
0 голосов
/ 20 сентября 2018

Я новичок в Unity, и я только что обнаружил поведение, которого я не понимаю ...

У меня есть готовая "ячейка", которую я сделал из спрайта, и я хочу, чтобы она изменила свой цветкогда моя мышь находится над ним.
Итак, я добавил к нему компонент BoxCollider2D, а также следующий скрипт:

public class Cell : MonoBehaviour 
{

    // Use this for initialization
    void Start () 
    {

    }

    // Update is called once per frame
    void Update ()
    {

    }


    private void OnMouseOver()
    {
        GetComponent<SpriteRenderer>().color = Color.magenta;
    }

    private void OnMouseExit()
    {
        GetComponent<SpriteRenderer>().color = Color.black;
    }
}

Затем, когда я перетаскиваю префаб "ячейка" на сцену, это не будет работать (когда моя мышь находится над ячейкой, ничего не происходит).

Та же проблема, когда я добавляю к сцене еще один префаб "ячейка".

Но когда я добавляю к сцене префаб "третья ячейка", эта функция работает с двумя первыми ячейками, но нена третьем.

Возможно, я что-то пропустил или есть поведение, которого я не знаю, так или иначе, если кто-то знает, почему это происходит, скажите, пожалуйста.

Спасибо!

1 Ответ

0 голосов
/ 20 сентября 2018

Я только что проверил ваш код в моей игре, используя 2d box sprite, и он отлично работает.

Видео> https://youtu.be/6GP3-aV9g3g

Вы можете попробовать несколько вещей для его отладки,

  • Сначала убедитесь, что к ним прикреплены BoxCollider2D и Rigidbody2D.
  • Убедитесь, что на сцене нет рамок, закрывающих рамки.

Когда у меня возникают проблемы с аспектом игры, я пытаюсь разбить его на самые простые компоненты.Попробуйте создать сцену, в которой нет ничего, кроме коробки, и попробуйте, если это не сработало, попробуйте прикрепить сценарий к не-готовому объекту.

Попробуйте добавить Debug.Log("Mouse Enter"); к сабвуферам, чтобы проверить, обнаружена ли мышь при вводе, если она обнаруживает мышь, возможно, ваш рендерер spite не работает должным образом.

Попробуйте эти вещии дайте мне знать, если они не сработают, я буду рад попытаться выяснить это.

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