Spline Instantiator Tool

Project Overview
In this project, various tecniques like procedural mesh generation along a spline and jobs/multithreading where applied with the goal of creating a tool in Unity 3D that allows the user to create a spline and adapt one GameObject along it. Also this project includes a secondary tool to combine different GameObjects into only one.

___________________________________

Continuous Generation
In continuous generation mode, the script arranges objects along a spline path with precise alignment and no gaps. It calculates the exact number of objects needed to cover the entire spline length, scaling and positioning each object to maintain a seamless connection.

For performance, it leverages Unity’s Job System and Burst Compiler to distribute tasks like vertex transformations, UV adjustments, and normal recalculations across multiple threads. This parallel processing ensures efficient execution, allowing the system to handle detailed spline paths and large object counts smoothly without impacting frame rates.

___________________________________

Separate Generation
In separate generation mode, the script places objects individually along a spline, creating distinct, evenly spaced instances rather than a continuous sequence. The user can control the exact number of objects instantiated, and each object is rotated and positioned to follow the path while maintaining a defined distance between instances.

For rotating the object, the user can choose between:
    1. None: not rotating the object.
    2. Right: Aligns each object with the spline's right axis.
    3. Forward: Orients each object to face forward along the spline.
    4. Both: Aligns objects with both the right and forward axes.

This mode also uses Unity's Job System and Burst Compiler to manage vertex and normal adjustments in parallel, optimizing the placement and alignment of each object.

___________________________________

Bake Instances
In baking instances, the user can choose between Contunuous Baking and Separate Baking. This 2 process generates the objects as separate GameObjecs. The user can choose between generating 1 GameObject per each object in the spline or by separating the spline in parts (2 parts, 2 GameObjects).

The process also uses Unity’s Job System and Burst Compiler to parallelize tasks and improve performance.


___________________________________

Combine Objects
This is a secondary tool to combine different objects into 1 single mesh. This will help the user to create Custom and Optimized colliders and to combine larger objects that are made up of many smaller ones for reducing drawcalls and being able to use the object in the Spline Instantiator Tool.




___________________________________

Apply Colliders
For the colliders, the user can choose in the Spline Instantiator Tool if the object instantiated will have a collider or not. The collider can be creating using other softwares like 3DMax or using the Combine Objects Tool. This colliders will also adapt to the spline and will be displayed as Mesh Colliders.