Summary
That wraps up our journey into the Prototype pattern! As always, it’s important to decide if adding a prototype layer of complexity to your game is worth the overhead, rather than simply using the Instantiate method. In my experience, if your game is dealing with a vast array of cloneable objects, and if the optimization you gain by cloning rather than creating new objects from scratch outweighs the added Prototype pattern abstraction code, it’s worth the effort.
Remember, the Prototype pattern is going to give you the most bang for your buck when you want to specify the kind of objects you’re creating by defining a prototypical instance and copying it. C# data structures can either be shallow or deep copied – a shallow copy includes references to reference fields, while deep copies create new reference variables (and Unity prefabs can be made into prototype objects and cloned just like C# data structures)!
In the next chapter, we’...