Я играю в игру, в которой пользователь должен перетащить элемент защиты (UI Imagen, находящийся на холсте) и поместить его в персонажа (2D-объект игры, находящийся на сцене).
Потому что я я не могу этого сделать, я разрешаю поместить область холста в холст, но это не то, что я хочу. У моих предметов защиты есть этот код "DragInGameHandler":
public void OnBeginDrag(PointerEventData eventData)
{
itemDragging = gameObject;
startPosition = transform.position;
startParent = transform.parent;
transform.SetParent(dragPlayer);
}
public void OnDrag(PointerEventData eventData)
{
transform.position = Input.mousePosition;
}
public void OnEndDrag(PointerEventData eventData)
{
itemDragging = null;
if (transform.parent == dragPlayer)
{
transform.position = startPosition;
transform.SetParent(startParent);
}
}
И в моей зоне сброса есть этот код (для каждого предмета у него есть вещи, определенные especifi c, поэтому я идентифицирую свои предметы по их тегу):
public void OnDrop(PointerEventData eventData)
{
if (!item)
{
item = DragInGameHandler.itemDragging;
item.transform.SetParent(transform);
}
if (item.tag == "protector")
{
//Especific stuff
}
}
Я знаю, что моя проблема с позицией мыши, потому что холст и сцена разные, но я не знаю, как ее решить. Спасибо за помощь!