Curvy Generator
Curvy Generator (CG) is a graph-based, modular ecosystem, designed for - but not limited to - turning spline based input data into whatever output you can imagine, for example:
- Extrude shapes along paths, thus creating volumes
- Deform existing meshes along paths
- Mix & Modify paths, volumes etc…
- Clone Meshes & GameObjects along paths or volumes
- Create & Merge meshes
- Etc.
CG graphs are built using modules. A module takes some input data, processes it and generates output data that can be linked to one or more subsequent modules. Much like ShaderTree or similar products. CG works with its own set of data types, being completely uncoupled from Unity data classes (read: threadable!).
Curvy Generator was developed with flexibility in mind, so it offers you an ecosystem taking care of external and internals resources (meshes, splines etc…), caching, initialization and module execution etc. Inside this ecosystem, you can:
- create your own modules
- create your own data types and resource types
- benefit from the builtin caching and debugging framework
Key concepts
- Modules can be connected by using slots, each requiring a certain data type
- Data Types can be subtyped. E.g. Path inherits from Shape, so you can plugin a Path when a Shape is required
- Smart Caching: if a module's input is unchanged, it returns the cached output instead of recalculating again
Topics
Reference
Show Debug
Show Debug Output?
Auto Refresh
Whether to automatically refresh the spline when necessary
Refresh Delay
The minimum delay between two automatic generator's refreshing while in Play mode, in milliseconds
Refresh Delay Editor
The minimum delay between two automatic generator's refreshing while in Edit mode, in milliseconds
Events
You can react to certain spline related events by adding a handler to the following UnityEvents:
OnRefresh
Called each time after the generator has refreshed
Advanced Settings
Force Frequent Updates
By default Unity calls scripts' update less frequently in Edit mode. ForceFrequentUpdates forces this script to update in Edit mode as often as in Play mode. Most users don't need that, but that was helpful for a user working with cameras controlled by Unity in Edit mode