Как принято создавать фабрику для предметов? Например, возьмем исходные данные:
Есть меч и копье. Они занесены в префаб, имеют разные спрайты и тд., и на них висит скрипт, допустим:
class Weapon : MonoBehaviour
{
int id;
int damage;
}
И вот возникает ситуация, что у одного персонажа в кармане лежит, допустим, 3 меча. Нам нужно создать клон префаба и сразу задать ему физический вид, но переместить объект куда-нибудь далеко, чтобы игрок его не увидел и при надобности перемещать к игроку? Просто таким образом выходит, что каждый объект имеет физическое проявление, что не очень хорошо. Либо предмет не должен иметь физического проявления и быть представленным кодом:
public class Weapon
{
int id;
int damage;
public Weapon(int damage)
{
this.damage = damage;
id = ++id;
}
}
Но тогда возникает вопрос, а как быть, если я хочу хранить спрайты оружия и их в модель меча передавать? Ведь без MonoBehaviour я не смогу назначить спрайты в инспекторе.
Т.е. выходит, что обязательно предмет будет иметь физические проявления, даже если он просто лежит в кармане (вернее, в кармане ссылка на предмет)?