Replicator is a Unity Editor extension that I independently created when I noticed my students could use a tool like it. It is inspired by a variety of other tools, such as Blender's Array modifier, and Element 3D. I envision Replicator as a tool that can be used by level designers to quickly populate levels, as well as a way to create live motion graphics designs right in Unity.
I took careful consideration to create a tool that is easy to use, even for beginners- as well as performant enough to be used in production.
To get started, the user populates a list of Objects To Replicate. These objects can be GameObjects from a scene, or Prefabs from the project directory. The user can choose to replicate them in the specified order, or in a randomized order. When using this replicator window, the user can see a live preview of what the replicated objects will look like when the Replicate! button is pressed.
At the heart of Replicator is its Replicator Shape system, which places the replicated objects. I implemented a variety of arrangement algorithms that the user can choose from, such as Line, Grid, Sphere, Circle, and Object modes. Each of these Replicator Shapes have "Shape Options" which are attributes that can be controlled, and are reflected in the live preview. The origin of the shape can also be translated, rotated and scaled.
The next section is Object Modifications, which the user can use to tweak the lock of the replicated objects. The user can offset the rotation and scale of the objects, as well as randomize these values to add organic looking variation between objects. This section also includes vertex-based Deform modified, which can twist and distort the objects.
The Random Seed option allows the random aspects of Replicator to be easily reproducible.
When the Replicate! button is pressed, the objects are replicated and all of the decisions the user made are passed off into a MonoBehaviour called Replicator Controller. From there, the user can further tweak or animate these values.