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

Upgrading to ScriptableObjects

Our chapter wouldn’t be complete without a little Unity-specific application, so let’s transform everything we’ve learned about the Flyweight pattern into ScriptableObject format so we can use the Inspector to wire up some shareable objects and a factory.

In the Scripts folder, create a new C# script named SOTile and update its contents to match the following code block, which creates a ScriptableObject tile class with all the same intrinsic data we have in the Tile class:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
// 1
[CreateAssetMenu(fileName = "Tile Data", menuName = "ScriptableObjects/SO Tile")]
// 2
public class SOTile : ScriptableObject, IFlyweight
{
    // 3
    public TerrainType type;
    public Color color;
    public float height;
    public float size;
    // 4
    public void Create(ExtrinsicState context)
    {
        Vector3 position = new Vector3(context...