Недавно, при разработке игры на Unity, у меня возникла проблема. У меня был объект с компонентом Sword и стояла задача предоставить игроку возможность сделать копию своего меча с теми же показателями (с полями компонента Sword), но с изменёнными другими компонентами.
Естественно, я решил скопировать значения всех полей из компонента Sword одного объекта в компонент Sword другого объекта. Сейчас я хочу показать как я это сделал.
Я создал этот статичный метод.
Обратите внимание на слово this перед аргументом comp, это слово значит, что теперь этот метод будет доступен для каждого экземпляра класса Component и его наследников. Метод довольно простой, мы просто проходимся по всем свойствам и полям одного объекта и задаёт такие же значения второму объекту
Теперь перейдём к использованию этого метода
Способ использования
obj.GetComponent<Sword>().GetCopyOf<Sword>(obj2.GetComponent<Sword>());
Вот такой синтаксис. Из obj2 мы копируем свойства компонента Sword в obj. Естественно вместо Sword вы напишете свои свойства.
Важно.
У обоих объектов обязательно должен быть указанный компонент, иначе копирование не сработает.
Если эта статья вам помогла, поддержите её лайком, пока!