Extending Curvy

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.

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.

Curvy Shapes offers a quick way of create Spline Shapes. Of course you can add your own shape templates: Custom Shape Templates

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.