Как сделать объект Unity UI перетаскиваемым, когда объекты создаются во время выполнения? - PullRequest
0 голосов
/ 12 мая 2018

Я работаю над игрой управления, в которой у каждого пользователя есть определенные символы в файлах сохранения.Я создаю экземпляры этих персонажей внутри панели, я хочу, чтобы пользователь выбрал одну из карточек и перетащил ее в какую-то конкретную точку.Я могу сделать сценарий перетаскивания для объекта, который уже находится в сцене.Но как добиться того же, если объекты генерируются во время выполнения?Мне просто нужна идея, как это сделать.Вот мой текущий код для перетаскивания объекта пользовательского интерфейса.

    public void OnDrag(){
    btn.transform.position = Input.mousePosition;
}
public void EndDrag(){
    if (btn.transform.position.x -500 <50 || btn.transform.position.x -500 > -50) {
        //btn.transform.position = new Vector3 (-10, 10);
        rt.anchoredPosition = new Vector3 (500, 100, 0);
    }
    else{
        rt.anchoredPosition = new Vector3 (-10, -10, 0);
    }
}

1 Ответ

0 голосов
/ 12 мая 2018

Во время создания объекта GameObject выполните:

obj.addComponent("YourScript");

, где YourScript - это сценарий, который вы написали и который прикреплен к объекту GameObjects, делает его перетаскиваемым ..

Или же вы создаете экземпляр префаба и присоединяете скрипт к префабу через редактор.

Это предпочтительнее, потому что addComponent () устареет в следующих версиях.

Я также рекомендую сохранить List<YourInstantiatedObjectType> в родительском.

...