Для того чтобы создать только один объект с использованием функции Instantiate в Unity 2D, можно создать переменную, в которую будет сохранено созданный объект, и добавить проверку наличия этой переменной перед вызовом Instantiate.
Пример:
```c#
public GameObject prefab; // префаб объекта, который мы хотим создать
private GameObject instantiatedObject; // переменная для хранения созданного объекта
void Start()
{
if (instantiatedObject == null) // если объект еще не создан
{
instantiatedObject = Instantiate(prefab, transform.position, transform.rotation); // создаем объект
}
}
```
Если ваш скрипт создает два объекта вместо одного при вызове метода Instantiate(), то возможно он вызывается несколько раз. Проверьте, какие события или методы могут вызывать этот скрипт, и убедитесь, что он вызывается только один раз. Также убедитесь, что у вас правильно настроены условия для создания объекта, чтобы он создавался только один раз.