Как перетащить изображение пользовательского интерфейса на 2D Gameobject? - PullRequest
0 голосов
/ 14 апреля 2020

Я играю в игру, в которой пользователь должен перетащить элемент защиты (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 
    }
 }

Я знаю, что моя проблема с позицией мыши, потому что холст и сцена разные, но я не знаю, как ее решить. Спасибо за помощь!

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