Creating a generic prototype component
Imagine that your game has more than a few enemy types, all of which need to be cloneable. If you were going to try and use the previous solution, you would quickly be underwater with the amount of BaseEnemy
subclasses you’d be creating every time the game needed a new enemy
type. Further, imagine that your team lead asks you to make any GameObject
in the project cloneable with a single script component.
Our first and only task to satisfy the scenario requirements is to create a new MonoBehaviour
with a single cloning method. In the Scripts folder, create a new C# script, name it Clone
, and update its code to match the following code. This code will reuse the same random generation and parenting logic from the previous solution, but we’ll also fetch and return the specified script component if it’s attached to the base clone:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
// 1
public...