Проблемы с OnPointerEnter и управлением под мобилки
Добавлено: 07 июн 2020, 19:54
Всем привет! у меня возникла проблема, собственно говоря поэтому я здесь. проблема заключается в неправильной работе функции OnPointerEnter. Я делаю игру под мобилки и хочу сделать управление как в Minecraft РЕ, а именно при нажатии на кнопку, она срабатывает. А чтобы она перестала работать нужно либо поднять палец, либо передвинуть в другую сторону. Важно чтобы на кнопку можно было как нажать, так и просто передвинуть палец уже находящийся на экране и она начала работать. Звучит просто?
И я так думал.
Короче проблема в том, что при первом нажатии на кнопку и последующем отпускании, она сама по себе нажимается еще раз и остается в таком состоянии. Но при этом если попробовать нажать еще раз, то о чудо, все нормально работает. Но как только тапнешь по экрану в другом месте или на другую кнопку, и попробуешь снова нажать на эту кнопку, она опять глючит как уже было описано выше.
также прилагается код, буду очень рад, если кто поможет)
если еще будут нужны какие-нибудь данные для решения вопроса, скину
И я так думал.
Короче проблема в том, что при первом нажатии на кнопку и последующем отпускании, она сама по себе нажимается еще раз и остается в таком состоянии. Но при этом если попробовать нажать еще раз, то о чудо, все нормально работает. Но как только тапнешь по экрану в другом месте или на другую кнопку, и попробуешь снова нажать на эту кнопку, она опять глючит как уже было описано выше.
также прилагается код, буду очень рад, если кто поможет)
Синтаксис:
Используется csharp
using UnityEngine;
using UnityEngine.UI;
using UnityEngine.EventSystems;
public class LeftB : MonoBehaviour, IPointerEnterHandler, IPointerExitHandler
{
//это для замены картинки кнопки
private Image image;
public Sprite mainImage;
public Sprite getImage;
public int i = 0;
void Start()
{
image = GetComponent<Image>();
}
void Update()
{
}
public void OnPointerEnter(PointerEventData eventData)
{
image.sprite = getImage;
i = 1;
Debug.Log("1");
}
public void OnPointerExit(PointerEventData eventData)
{
image.sprite = mainImage;
i = 0;
Debug.Log("0");
}
}
using UnityEngine.UI;
using UnityEngine.EventSystems;
public class LeftB : MonoBehaviour, IPointerEnterHandler, IPointerExitHandler
{
//это для замены картинки кнопки
private Image image;
public Sprite mainImage;
public Sprite getImage;
public int i = 0;
void Start()
{
image = GetComponent<Image>();
}
void Update()
{
}
public void OnPointerEnter(PointerEventData eventData)
{
image.sprite = getImage;
i = 1;
Debug.Log("1");
}
public void OnPointerExit(PointerEventData eventData)
{
image.sprite = mainImage;
i = 0;
Debug.Log("0");
}
}
если еще будут нужны какие-нибудь данные для решения вопроса, скину