При создании объектов в Unity 2D с использованием C# вам необходимо правильно использовать метод Instantiate для создания новых экземпляров объектов. Если у вас создаются два объекта вместо одного, это может быть вызвано неправильным использованием Instantiate.
Чтобы создать только один объект при вызове Instantiate, убедитесь, что вы вызываете этот метод только один раз в соответствующем месте вашего скрипта. Например, если у вас есть две строки кода, в которых происходит вызов Instantiate, то это может привести к созданию двух объектов.
Также убедитесь, что вызов Instantiate происходит в нужный момент. Например, если метод, содержащий вызов Instantiate, вызывается каждый кадр в функции Update(), то при каждом кадре будет создаваться новый объект.
Для создания только одного объекта в Unity 2D с использованием C# лучше вызвать метод Instantiate в функции Start(), которая вызывается только один раз при запуске скрипта, либо в функции, которая вызывается по определенному условию (например, при нажатии на кнопку).
Таким образом, убедитесь, что вы используете метод Instantiate правильно, вызывайте его в нужный момент и только один раз, чтобы создавался только один объект.