Доброго времени суток!
Подскажите пожалуйста почему префаб не хочет вставать в ячейку в заданной области?
Уже всю голову себе сломал и не могу понять в чём беда.
У меня есть слоты где хранятся префабы (item) в инвентаре и есть область на которой весит данный скрипт (при отпускании item в этой области должен ставать в ячейки которые заданы в slotsInventory):
using UnityEngine;
using UnityEngine.EventSystems;
public class ItemDropInventory : MonoBehaviour, IDropHandler
{
public Transform slotsInventory;
public void OnDrop(PointerEventData eventData)
{
if (eventData.pointerDrag != null)
{
eventData.pointerDrag.transform.SetParent(slotsInventory);
}
}
}
Это висит на самом item:
using UnityEngine;
using UnityEngine.EventSystems;
using UnityEngine.UI;
public class ItemDrag : MonoBehaviour, IBeginDragHandler, IDragHandler, IEndDragHandler
{
RectTransform rectTransform;
Canvas canvasInventory;
Button itemButton;
void Start()
{
rectTransform = GetComponent<RectTransform>();
itemButton = GetComponent<Button>();
canvasInventory = GetComponentInParent<Canvas>();
}
public void OnBeginDrag(PointerEventData eventData)
{
rectTransform.SetParent(canvasInventory.GetComponent<RectTransform>());
itemButton.enabled = false;
}
public void OnDrag(PointerEventData eventData)
{
rectTransform.anchoredPosition += eventData.delta / canvasInventory.scaleFactor;
}
public void OnEndDrag(PointerEventData eventData)
{
itemButton.enabled = true;
}
}
А у меня item просто останавливается на том месте где я его отпускаю :(
Иногда если много раз клацать по item или как то местами его двигать, то срабатывает и он стаёт в ячейку. То есть оно как будто раз через раз срабатывает :(