This repository includes sample projects made with Unity, with the purpose of creating a collection of reusable, manageable pieces of code that can be used as toolsets on larger-scale applications.
Table of Contents:
- Procedural Water Surface
1.3. Further Links
- Procedural Landscape
2.3. Future Plans
2.4. Further Links
- Procedural Audio
3.3. Further Links
1. Procedural Water Surface
project - specific - folder: https://github.com/konsfik/Unity3D-Coding-Examples/tree/master/1-Procedural-Water-Surface
This project is a case study on "how you can procedurally generate Waves on a Custom Mesh-Surface by using C# code in Unity3D". Keep in mind that this is not a fluid-simulation, but rather a mathematical approximation of how a fluid-surface might "look like". Meaning that there is not an underlying physical model that drives the simulation, but only some mathematical functions (sinusoidal) that shape the surface's form.
|Procedural Water Surface - editor screenshot|
|Procedural Water Surface - application screenshot|
1.3. Further links:
more info about this example: http://www.konsfik.com/procedural-water-surface-made-in-unity3d/
2. Procedural Landscape
project - specific - folder: https://github.com/konsfik/Unity3D-Coding-Examples/tree/master/2-Procedural-Landscape
This project is a case-study on "how you can procedurally generate a landscape - surface in Unity, using c# code". It allows you to make changes and see a preview of the generated mesh in Unity editor's edit-mode.
The aim is to also be able to save the generated mesh as a prefab, but I have not implemented this functionality yet. More details coming soon.
|Procedural Landscape - editor screenshot|
|Procedural Landscape - editor controls|
|Procedural Landscape - animated mode|
2.3. Future plans:
This project is currently functional, however it will need some expansion (in its functionality) inorder to become an actual level-design tool.
Here is a list of the functionality that has already been implemented:
- Apply Perlin Noise on a custom grid - mesh, creating an artificial - landscape - geometry.
- Use the data (height - variation) of the created landscape to make a custom gradient material.
- Expose variables to inspector and make sure that it the geometry and material update correctly while in edit mode.
- Create a demo-mode, in which the Landscape updates by itself, in an ever-changing manner (just for the fun of it).
And here is the current 'TO - DO - LIST':
- The algorithm adds a collider on the procedural mesh, so that you can use it as a playeble level.
- The algorithm allows you to save the mesh as a prefab, so that you cn create a collection of pre-made Landscapes.
- The algorithm allows you to export the mesh in a 3D-file format (such as .obj or .dxf) so that you can edit it with another application.
- The Procedural Mesh's geometry expands in real time - as you explore it, creating a never-ending world.
- The Landscape is populated with extra elements (such as rocks and vegetation) thaus creating a richer environment.
I am not sure if / when I will fulfill the list's tasks. For the time being I am more interested in populating this repository with a variety of examples. However, I am writing these down for future reference.
2.4. Further links:
more info about this example: http://www.konsfik.com/procedural-landscape-made-in-unity3d/
3. Procedural Audio
Project - specific - folder: https://github.com/konsfik/Unity3D-Coding-Examples/tree/master/3-Procedural-Audio
This project is a case-study on "how you can procedurally generate some simple sounds from within the Unity engine, and connect those sounds with parameters of other objects in your scene". The advantage of that is that you have access to parameters that drive the audio generation, and not only to the resulting audio. The "disadvantage" is that you must have a good understanding of digital audio inorder to create your own tools / alterations upon this example.
|Procedural Audio - editor screenshot|
|Procedural Audio - editor controls|
|Procedural Audio - autoPlay mode|
3.3. Further links:
more info about this example: http://www.konsfik.com/procedural-audio-made-in-unity3d/