Table of Contents
Curvy offers a lot of ready-made scripts you can drop on your GameObjects and be happy. However, there always will be the one feature you or your game designers are missing. Knowing that we not just offer you the full sourcecode of Curvy, but designed many aspects with extendability in mind.
Extending Curvy can be complicated, but that highly depends on what you're after. Sometimes you just need to create a custom controller and override a single function to add the feature you want while other extensions require a solid knowledge of Curvy mechanics.
- First, learn about Curvy's Coding guidelines
- Second, you should read the docs and thoroughly examine the provided examples. If you stuck, feel free to ask at the forum
- Use the source, Luke! Examine classes that provide similiar functionality and see how it's done! Perhaps read the Coding guidelines again!
Where to store custom code
Obviously, you shouldn't create any custom code inside Curvy's |main folders. In case of custom shape templates and CG modules you can leave the files where the corresponding wizard created them, but like with custom controllers, toolbar items etc. you can save them anywhere in your project.
Curvy heavily uses our DevTools for inspector magic and other editor related functionality. In Curvy it ships as a DLL, but we plan to release it as a standalone package (most likely for free) once we have a proper manual in place. Until that, examine Curvy classes to see how it's used and/or feel free to use ILSpy (or any other decompiler) to examine the source.
Extending existing Curvy Controllers
Extending controllers is a common task. Most functions of the builtin controllers are virtual, so all you have to do inherit your custom class from a controller and override some properties or functions.
Extending the UI
Creating custom Shapes
Curvy Shapes offers a quick way of create Spline Shapes. Of course you can add your own shape templates: Custom Shape Templates
Extending Curvy Generator
Extending the Curvy Generator is the most sophisticated way to extend Curvy, but the most fun part, too! Though not rocket science, you'll need a good understanding of the Generator internals to successfully write quality modules.