Нет. Каждая пушка это не отдельный объект. Будет много описания, но я думаю, ты поймёшь основную мысль.
Каждое оружие - это у меня отдельный скрипт. Вернее два скрипта.
1-ый скрипт будет у меня инициализировать переменные, которые будут отвечать за характеристики оружия.
2-ой скрипт будет выполнять весь код оружия.
Это достаточно удобно, так как выбор того или иного оружия осуществляется всего одним скриптом.
Допустим, нам нужно добавить пистолет Макарова в игру.
Я создаю 1-ый скрип с названием "PM_scr", в котором прописываю характеристики этого оружния:
Скрипт "PM_scr" вызывается у игрока только в тот момент, когда он выбирает оружие Пистолет Макарова, тем самым инициализируются переменные, которые понадобятся нам в следующем скрипте:
Второй скрипт будет вызываться в объекте "Игрок" каждый шаг, то есть непрерывно. Назовём его "weapon_scr". Примерный код: