Book Image

Learning Design Patterns with Unity

By : Harrison Ferrone
Book Image

Learning Design Patterns with Unity

By: Harrison Ferrone

Overview of this book

Struggling to write maintainable and clean code for your Unity games? Look no further! Learning Design Patterns with Unity empowers you to harness the fullest potential of popular design patterns while building exciting Unity projects. Through hands-on game development, you'll master creational patterns like Prototype to efficiently spawn enemies and delve into behavioral patterns like Observer to create reactive game mechanics. As you progress, you'll also identify the negative impacts of bad architectural decisions and understand how to overcome them with simple but effective practices. By the end of this Unity 2023 book, the way you develop Unity games will change. You'll emerge not just as a more skilled Unity developer, but as a well-rounded software engineer equipped with industry-leading design patterns.
Table of Contents (23 chapters)
21
Other Books You May Enjoy
22
Index

Object Pooling customizations

The basic Object Pool we’ve written so far works perfectly fine, but it’s not as optimized as it could be. We’re using multiple lists to store and manage our pooled objects, Object Pool access isn’t thread-safe, and we can only handle a single type of pooled object at a time. We’ll cover each of these areas in the next few subsections, but let’s start by updating our lists to a single queue.

Queues over lists

Because we need to continually update and track which pooled objects are available or in use, a queue is a more efficient choice. Queues are first-in, first-out (FIFO) collections, meaning elements are inserted at one end and removed from the other, creating a circular array, which is exactly what we need.

Update ObjectPool.cs to match the following code, which replaces the available and in-use GameObject lists with a single queue, then updates CreateObject, GetObject, and ReturnObject to use...