Продолжаем цикл о шаблонах и поговорим о не самом популярном в Unity среде - Прототипе.
Целью шаблона “Прототип” является создание новых объектов посредством клонирования уже существующего. Обычно это становится возможным при помощи предоставления интерфейса самим клонируемым объектом. Основная проблема этого процесса заключается в том, что клонирование извне затруднительно из-за неочевидности механизма копирования зависимых объектов или отсутствия доступа к внутренним скрытым полям. Но если сосредоточиться на названии “Прототип”, то становится очевидным, что использование префабов для создания новых объекта является не чем иным, как применением этого шаблона, так как Unity предоставляет нам возможность клонировать в том числе и внутренние поля. =)
Больше теории можно почерпнуть в этой статье или этой главе книги Роберта Нистрома.
Основой этого шаблона в .Net является интерфейс ICloneable
, который состоит из описания одного метода object Clone();
.
Для примера приведём упрощённую реализацию Skeleton
, отнаследованного от класса Monster
, который, в свою очередь, отнаследован от MonoBehaviour
. Теперь имея одного скелета, мы можем собрать свою армию нежити. =)
|
|
Это очень небольшая статья целью которой было обратить ваше внимание на взаимосвязь между паттерном и одним из основных подходов при работе с Unity. Пока! =)