Documentation

Unity Engine


User Manual

Script Reference

Unity Engine


Programming in Unity

Resources and workflows for creating C# scripts in Unity to control elements of your application.
Read time 3 minutesLast updated 5 days ago

Programming in Unity refers to authoring your project's functionality in code rather than through the Unity Editor UI. This allows you to go beyond what can be done in the Editor UI alone. Interacting directly with the public Unity APIs allows for finer control and a greater degree of customization.
Learning to program in particular languages is beyond the scope of this section. However, there are many books, tutorials, and other resources for learning how to program with Unity. Refer to Unity Learn for further details.

Topic

Description

Get started with programming in UnityGet started with creating, naming, and editing your first Unity scripts.
Environment and toolsSet up your software development environment with the right tools for programming in Unity.
Fundamental Unity typesUnderstand some of the fundamental C# types that Unity provides and their special significance and behavior in the Unity Editor and runtime.
Managing update and execution orderUnderstand the order in which Unity executes your script components and the lifecycle callbacks within those scripts during the runtime application loop.
Managing time and frame rateUnderstand how Unity measures time so you can manage the rate at which time passes in your application and ensure values update according to the appropriate time scale.
Split tasks across frames with coroutinesSplit the execution of a task synchronously across multiple scenes with coroutines. This can be useful for tasks that should progress gradually over several frames, such as a fade out effect.
Interacting with web serversUse the UnityWebRequest system to allow your application to interact with a web server via HTTP.
Handle type data generically with Unity PropertiesUse the Unity Properties API to generically discover and manipulate object properties at runtime.
Programming with mathUse Unity's mathematical APIs to apply trigonometric, logarithmic, and other functions in your application, move objects with vectors, and generate random values.
Compilation and code reloadHow Unity transforms the code you write into code that runs, and the implications for development iteration times and your application's runtime behavior.
Code optimizationProject configuration, design patterns, and coding strategies to help optimize the performance of your code.
Testing your codeUse the Unity Test Framework to write and run tests for your Editor or runtime code.
Debugging and diagnosticsDebug, diagnose, and fix problems in your code.

Additional resources and examples