{{description>A node-based editor for extruding shapes, deforming meshes & more along spline paths. Use it to make your own track editor and more in Unity.}} {{indexmenu_n>3}} ====== 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. {{ :documentation:generator:cg.png?direct&700 |A Curvy Generator graph window }} 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 ===== Unless otherwise explicitly stated Curvy Generator treats all Input and Output as local to the CurvyGenerator GameObject * 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 ===== * [[resources]] * [[documentation:generator:modules:start]] * [[datatypes]] * [[documentation:generator:templates]] * [[documentation:performancetips:start#curvy_generator|Optimizing performance]] ===== 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