Manual
Scripting API
unity3d.com
Version:
2017.4
Versions with this page:
6000.2
6000.1
6000.0
2023.2
2023.1
2022.3
2022.2
2022.1
2021.3
2021.2
2021.1
2020.3
2020.2
2020.1
2019.4
2019.3
2019.2
2019.1
2018.4
2018.3
2018.2
2018.1
2017.3
2017.2
2017.1
5.6
5.5
5.4
5.3
5.2
Versions without this page:
Supported
Legacy
Language:
English
English
日本語
Español
한국어
Русский
Unity Manual
Version: 2017.4
Select a different version
6000.2 - Supported
6000.1 - Supported
6000.0 - Supported
2023.2 - Not supported
2023.1 - Not supported
2022.3 - Supported
2022.2 - Not supported
2022.1 - Not supported
2021.3 - Supported
2021.2 - Not supported
2021.1 - Not supported
2020.3 - Not supported
2020.2 - Not supported
2020.1 - Not supported
2019.4 - Not supported
2019.3 - Not supported
2019.2 - Not supported
2019.1 - Not supported
2018.4 - Not supported
2018.3 - Not supported
2018.2 - Not supported
2018.1 - Not supported
2017.3 - Not supported
2017.2 - Not supported
2017.1 - Not supported
5.6 - Not supported
5.5 - Not supported
5.4 - Not supported
5.3 - Not supported
5.2 - Not supported
Language:
English
English
日本語
Español
한국어
Русский
Unity User Manual (2017.4)
Documentation versions
Switching between Unity versions in the documentation
Offline documentation
Working in Unity
Getting Started
Unity Hub
Installing Unity using the Hub
Adding components to the Unity Editor
Installing Unity without the hub
Installing Unity offline without the Hub
Unity Hub advanced deployment considerations
2D or 3D projects
Starting Unity for the first time
The Learn tab
Opening existing Projects
Learning the interface
Asset Workflow
Importing Assets
Import Settings
Importing from the Asset Store
Asset packages
Standard Assets
The Main Windows
The Project window
The Scene view
Scene view navigation
Positioning GameObjects
Scene view Control Bar
Gizmos menu
The Game view
The Hierarchy window
The Inspector window
Assigning icons
Editing Properties
Preset Libraries
Inspector Options
The Toolbar
Searching
Other windows
Customizing Your Workspace
Unity hotkeys
Creating Gameplay
Scenes
GameObjects
GameObject
Introduction to components
Using Components
Primitive and Placeholder Objects
Transform
Creating components with scripting
Deactivating GameObjects
Tags
Static GameObjects
Prefabs
Instantiating Prefabs at runtime
Saving Your Work
Input
Conventional Game Input
Mobile Device Input
Mobile Keyboard
Transforms
Rotation and Orientation in Unity
Lights
Cameras
Adding Random Gameplay Elements
Cross-Platform Considerations
Publishing Builds
Troubleshooting
Editor Features
2D and 3D Mode Settings
Preferences
Build Settings
Settings Managers
Audio Manager
Editor Settings
Input Manager
Network Manager
Physics Manager
Player Settings
Splash Screen
Quality Settings
Graphics Settings
Script Execution Order settings
Tags and Layers
Time Manager
Network Emulation
Visual Studio C# integration
RenderDoc Integration
Editor Analytics
Check For Updates
IME in Unity
Special folder names
Exporting Packages
Version Control
Version control integration
Perforce Integration
Plastic SCM Integration
Using External Version Control Systems with Unity
Smart Merge
Troubleshooting The Editor
Advanced Development
Profiler overview
Profiler window
CPU Usage Profiler
Rendering Profiler
Memory Profiler
Audio Profiler
Physics Profiler
GPU Profiler
Global Illumination Profiler
UI Profiler
Multi-Scene editing
Loading Resources at Runtime
Plugins
Plugin Inspector
Managed Plugins
Native plug-ins
Building plug-ins for desktop platforms
Low-level native plug-in interface
Low-level native plug-in rendering extensions
Low-level native plug-in Shader compiler access
AssetBundles
AssetBundle Workflow
Preparing Assets for AssetBundles
Building AssetBundles
AssetBundle Dependencies
Using AssetBundles Natively
AssetBundle Manager
Patching with AssetBundles
Troubleshooting
Unity Asset Bundle Browser tool
Reducing the file size of your build
Social API
JSON Serialization
Streaming Assets
ScriptableObject
Advanced Editor Topics
Build Player Pipeline
Command line arguments
Batch mode and built-in coroutine compatibility
Behind the Scenes
AssetDatabase
Text-Based Scene Files
Description of the Format
An Example of a YAML Scene File
YAML Class ID Reference
Cache Server
Modifying Source Assets Through Scripting
Extending the Editor
Editor Windows
Property Drawers
Custom Editors
TreeView
Running Editor Script Code on Launch
Licenses and Activation
Online activation
Offline / Manual Activation
Managing your License
Activation FAQ
Upgrade Guides
Using the Automatic API Updater
Upgrading to Unity 2017.3
Upgrading to Unity 2017.2
Upgrading to Unity 2017.1
Upgrading to Unity 5.6
Upgrading to Unity 5.5
Upgrading to Unity 5.4
5.4 Networking API Changes
Upgrading to Unity 5.3
Upgrading to Unity 5.2
Upgrading to Unity 5.0
AI in Unity 5.0
Animation in Unity 5.0
Audio in Unity 5.0
Baked Data in Unity 5.0
Plugins in Unity 5.0
Physics in Unity 5.0
Shaders in Unity 5.0
Other Upgrade Notes for Unity 5.0
Upgrading to Unity 4.0
Upgrading to Unity 3.5
2D
Gameplay in 2D
Sprites
Sprite Renderer
Sprite Creator
Sprite Editor
Sprite Editor: Custom Outline
Sprite Editor: Edit Physics Shape
(Legacy) Sprite Packer
Sorting Group
9-slicing Sprites
Sprite Masks
Sprite Atlas
Master and Variant Sprite Atlases
Variant Sprite Atlas
Sprite Atlas workflow
Preparing Sprite Atlases for distribution
Methods of distribution
Late Binding
Resolving different Sprite Atlas scenarios
Sprite Packer Modes
(Legacy) Sprite Packer
Sprite Shape Renderer
Tilemap
Tile Assets
Tilemap Renderer
Creating Tiles
Creating Tilemaps
Tilemap Palette
Painting on Tilemaps
Tilemap Collider 2D
Scriptable Tiles
TileBase
Tile
TileData
TileAnimationData
Other useful classes
Scriptable Tile example
Scriptable Brushes
GridBrushBase
GridBrushEditorBase
Other useful classes
Scriptable Brush example
Physics Reference 2D
Physics 2D Settings
Rigidbody 2D
Collider 2D
Circle Collider 2D
Box Collider 2D
Polygon Collider 2D
Edge Collider 2D
Capsule Collider 2D
Composite Collider 2D
Physics Material 2D
2D Joints
Distance Joint 2D
Fixed Joint 2D
Friction Joint 2D
Hinge Joint 2D
Relative Joint 2D
Slider Joint 2D
Spring Joint 2D
Target Joint 2D
Wheel Joint 2D
Constant Force 2D
Effectors 2D
Area Effector 2D
Buoyancy Effector 2D
Point Effector 2D
Platform Effector 2D
Surface Effector 2D
Graphics
Graphics Overview
Lighting
Lighting overview
Lighting Window
Light Explorer
Light sources
Types of light
The Light Inspector
Using Lights
Cookies
Shadows
Shadows
Directional light shadows
Lighting Modes
Lighting: Technical information and terminology
Real-time lighting
Mixed lighting
Baked Indirect mode
Shadowmask mode
Shadowmask
Distance Shadowmask
Subtractive mode
Baked lighting
Global Illumination
Using precomputed lighting
Baked ambient occlusion
LOD for baked lightmaps
LOD and Realtime GI
Light Probes
Light Probes: Technical information
Placing Light Probes
Placing probes using scripting
Light Probes for moving objects
Light Probes and the Mesh Renderer
Light Probe Proxy Volume component
GI Visualizations in the Scene view
Lightmapping Quickstart
Lightmap Parameters
Lightmap Directional Modes
Lightmaps: Technical information
Lighting Data Asset
Material properties and the GI system
Global Illumination UVs
Importing UVs from Maya to Unity
GI cache
Light troubleshooting and performance
Related topics
Linear rendering overview
Linear or gamma workflow
Gamma Textures with linear rendering
Working with linear Textures
Cameras
Using more than one camera
Camera Tricks
Understanding the View Frustum
The Size of the Frustum at a Given Distance from the Camera
Rays from the Camera
Using an Oblique Frustum
Creating an Impression of Large or Small Size
Occlusion Culling
Occlusion Area
Occlusion Portals
Dynamic resolution
Materials, Shaders & Textures
Textures
Creating and Using Materials
Standard Shader
Content and Context
Metallic vs. specular workflow
Material parameters
Rendering Mode
Albedo Color and Transparency
Specular mode: Specular parameter
Metallic mode: Metallic Parameter
Smoothness
Normal map (Bump mapping)
Heightmap
Occlusion Map
Emission
Secondary Maps (Detail Maps) & Detail Mask
The Fresnel Effect
Material charts
Make your own
Standard Particle Shaders
Physically Based Rendering Material Validator
Accessing and Modifying Material parameters via script
Writing Shaders
Legacy Shaders
Usage and Performance of Built-in Shaders
Normal Shader Family
Vertex-Lit
Diffuse
Specular
Bumped Diffuse
Bumped Specular
Parallax Diffuse
Parallax Bumped Specular
Decal
Diffuse Detail
Transparent Shader Family
Transparent Vertex-Lit
Transparent Diffuse
Transparent Specular
Transparent Bumped Diffuse
Transparent Bumped Specular
Transparent Parallax Diffuse
Transparent Parallax Specular
Transparent Cutout Shader Family
Transparent Cutout Vertex-Lit
Transparent Cutout Diffuse
Transparent Cutout Specular
Transparent Cutout Bumped Diffuse
Transparent Cutout Bumped Specular
Self-Illuminated Shader Family
Self-Illuminated Vertex-Lit
Self-Illuminated Diffuse
Self-Illuminated Specular
Self-Illuminated Normal mapped Diffuse
Self-Illuminated Normal mapped Specular
Self-Illuminated Parallax Diffuse
Self-Illuminated Parallax Specular
Reflective Shader Family
Reflective Vertex-Lit
Reflective Diffuse
Reflective Specular
Reflective Bumped Diffuse
Reflective Bumped Specular
Reflective Parallax Diffuse
Reflective Parallax Specular
Reflective Normal Mapped Unlit
Reflective Normal mapped Vertex-lit
Video overview
Video Player component
Video Clips
Video sources
Video file compatibility
Understanding video files
Video transparency support
Panoramic video
Terrain Engine
Creating and editing Terrains
Height Tools
Terrain Textures
Trees
SpeedTree
Wind Zones
Grass and other details
Terrain settings
Tree Editor
Building Your First Tree
Tree Basics
Branch Group Properties
Leaf Group Properties
Tree - Wind Zones
Particle Systems
What is a Particle System?
Using Particle Systems in Unity
Creating a simple explosion
Creating exhaust smoke from a vehicle
Particle System vertex streams and Standard Shader support
Post-processing overview
Post-processing stack
Setting up the post-processing stack
Anti-aliasing
Ambient Occlusion
Screen Space Reflection
Fog
Depth of Field
Motion Blur
Eye Adaptation
Bloom
Color Grading
User LUT
Chromatic Aberration
Grain
Vignette
Dithering
Debug Views
Monitors
Writing post-processing effects
Reflection probes
Types of Reflection Probe
Using Reflection Probes
Advanced Reflection Probe Features
Reflection probe performance and optimisation
Advanced Rendering Features
High Dynamic Range Rendering
HDR color picker
Rendering Paths
Level of Detail (LOD)
Graphics API support
DirectX
Metal
OpenGL Core
Compute shaders
Graphics Command Buffers
GPU instancing
Sparse Textures
Graphics hardware capabilities and emulation
CullingGroup API
Asynchronous Texture Upload
Procedural Materials
Procedural Materials - Memory Usage and Caching Behaviour
Procedural Mesh Geometry
Anatomy of a Mesh
Using the Mesh Class
Example - Creating a quad
Optimizing graphics performance
DrawCallBatching
Modeling characters for optimal performance
Rendering Statistics Window
Frame Debugger
Optimizing Shader Load Time
Layers
Layer-based collision detection
Graphics Reference
Cameras Reference
Camera
Flare Layer
GUI Layer (Legacy)
Shader Reference
Writing Surface Shaders
Surface Shader examples
Custom lighting models in Surface Shaders
Surface Shader lighting examples
Surface Shaders with DX11 / OpenGL Core Tessellation
Writing vertex and fragment shaders
Vertex and fragment shader examples
Shader semantics
Accessing shader properties in Cg/HLSL
Providing vertex data to vertex programs
Built-in shader include files
Predefined Shader preprocessor macros
Built-in shader helper functions
Built-in shader variables
Making multiple shader program variants
GLSL Shader programs
Shading Language used in Unity
Shader Compilation Target Levels
Shader data types and precision
Using sampler states
ShaderLab Syntax
ShaderLab: Properties
ShaderLab: SubShader
ShaderLab: Pass
ShaderLab culling and depth testing
ShaderLab: Blending
ShaderLab: Pass Tags
ShaderLab: Stencil
ShaderLab: Name
ShaderLab: Legacy Lighting
ShaderLab: Legacy Texture Combiners
ShaderLab: Legacy Alpha Testing
ShaderLab: Legacy Fog
ShaderLab: Legacy BindChannels
ShaderLab: UsePass
ShaderLab: GrabPass
ShaderLab: SubShader Tags
ShaderLab: Fallback
ShaderLab: CustomEditor
ShaderLab: other commands
Shader assets
Advanced ShaderLab topics
Unity's Rendering Pipeline
Performance tips when writing shaders
Rendering with Replaced Shaders
Custom Shader GUI
Using Depth Textures
Camera's Depth Texture
Platform-specific rendering differences
Shader Level of Detail
Texture arrays
Debugging DirectX 11/12 shaders with Visual Studio
Debugging DirectX 12 shaders with PIX
Implementing Fixed Function TexGen in Shaders
Particle Systems reference
Particle System
Particle System modules
Particle System Main module
Emission module
Particle System Shape Module
Velocity over Lifetime module
Noise module
Limit Velocity Over Lifetime module
Inherit Velocity module
Force Over Lifetime module
Color Over Lifetime module
Color By Speed module
Size over Lifetime module
Size by Speed module
Rotation Over Lifetime module
Rotation By Speed module
External Forces module
Collision module
Triggers module
Sub Emitters module
Texture Sheet Animation module
Lights module
Trails module
Custom Data module
Renderer module
Particle Systems (Legacy, prior to release 3.5)
Ellipsoid Particle Emitter (Legacy)
Mesh Particle Emitter (Legacy)
Particle Animator (Legacy)
Particle Renderer (Legacy)
World Particle Collider (Legacy)
Visual Effects Reference
Halo
Lens Flare
Flare
Line Renderer
Trail Renderer
Billboard Renderer
Billboard Asset
Projector
Mesh Components
Meshes
Material
Mesh Filter
Mesh Renderer
Skinned Mesh Renderer
Text Mesh
Text Asset
Font
Texture Components
Textures
Importing Textures
Texture Types
Texture compression formats for platform-specific overrides
Procedural Material Assets
Render Texture
Custom Render Textures
Movie Texture
3D Textures
Texture arrays
Rendering Components
Cubemap
Skybox
Reflection Probe
LOD Group
Rendering Pipeline Details
Deferred shading rendering path
Forward Rendering Path Details
Legacy Deferred Lighting Rendering Path
Vertex Lit Rendering Path Details
Hardware Requirements for Unity's Graphics Features
Graphics HOWTOs
How to make a Skybox
How do I make a Mesh Particle Emitter? (Legacy Particle System)
How do I make a Spot Light Cookie?
How do I fix the rotation of an imported model?
Water in Unity
Art Asset best practice guide
How do I import models from my 3D app?
FBX export guide
Importing objects from Maya
Importing objects from Cinema 4D
Importing Objects From 3D Studio Max
Importing Objects From Cheetah3D
Importing Objects From Modo
Importing Objects From Lightwave
Importing objects from Blender
Importing Objects From SketchUp
How to do Stereoscopic Rendering
Graphics Tutorials
Shaders: ShaderLab and fixed function shaders
Shaders: vertex and fragment programs
Physics
Physics Overview
Rigidbody overview
Colliders
Joints
Character Controllers
Physics Debug Visualization
3D Physics Reference
Box Collider
Capsule Collider
Character Controller
Character Joint
Configurable Joint
Constant Force
Fixed Joint
Hinge Joint
Mesh Collider
Rigidbody
Sphere Collider
Spring Joint
Cloth
Wheel Collider
Terrain Collider
Physic Material
Physics HOWTOs
Ragdoll Wizard
Joint and Ragdoll stability
Wheel Collider Tutorial
Scripting
Scripting Overview
Creating and Using Scripts
Variables and the Inspector
Controlling GameObjects using components
Event Functions
Time and Framerate Management
Creating and Destroying GameObjects
Coroutines
Namespaces
Attributes
Execution Order of Event Functions
Understanding Automatic Memory Management
Platform dependent compilation
Special folders and script compilation order
Script compilation and assembly definition files
Generic Functions
Scripting restrictions
Script Serialization
Built-in serialization
Custom serialization
Script serialization errors
UnityEvents
What is a Null Reference Exception?
Important Classes
Vector Cookbook
Understanding Vector Arithmetic
Direction and Distance from One Object to Another
Computing a Normal/Perpendicular vector
The Amount of One Vector's Magnitude that Lies in Another Vector's Direction
Scripting Tools
Console Window
MonoDevelop
Attaching MonoDevelop Debugger To An Android Device
Log Files
Unity Test Runner
Unity Test Runner utilities
IL2CPP
Building a project using IL2CPP
Compiler options
Windows Runtime support
How IL2CPP works
Optimizing IL2CPP build times
Managed bytecode stripping with IL2CPP
Integrated development environment (IDE) support
Event System
Messaging System
Input Modules
Supported Events
Raycasters
Event System Reference
Event System Manager
Graphic Raycaster
Physics Raycaster
Physics 2D Raycaster
Standalone Input Module
Touch Input Module
Event Trigger
Multiplayer and Networking
Multiplayer Overview
Setting up a multiplayer project
Using the Network Manager
Using the Network Manager HUD
The Network Manager HUD in LAN mode
The Network Manager HUD in Matchmaker mode
Converting a single-player game to Unity Multiplayer
Debugging Information
The Multiplayer High Level API
Networking HLAPI System Concepts
Networked GameObjects
Player GameObjects
Custom Player Spawning
Spawning GameObjects
Custom Spawn Functions
Network Authority
State synchronization
Advanced State Synchronization
Network visibility
Customizing network visibility
Scene GameObjects
Actions and communication
Remote Actions
Network Manager callbacks
NetworkBehaviour callbacks
Network Messages
Dealing with clients and servers
Network clients and servers
Host Migration
Network Discovery
Multiplayer Lobby
Using the Transport Layer API
NetworkReader and NetworkWriter serializers
Setting up Unity Multiplayer
Integrating the Multiplayer Service
Integration using the HUD
Integration using Unity's High-Level API
Integration using NetworkTransport
Common Errors
Customized Matchmaking callbacks
Networking Tips for Mobile devices.
Multiplayer Component Reference
Network Animator
Network Discovery
Network Identity
Network Lobby Manager
Network Lobby Player
Network Manager HUD
Network Manager
Network Proximity Checker
NetworkStartPosition
Network Transform
Network Transform Child
Network Transform Visualizer
Multiplayer Classes Reference
NetworkBehaviour
NetworkClient
NetworkConnection
NetworkServer
NetworkServerSimple
UnityWebRequest
Common operations: using the HLAPI
Retrieving text or binary data from an HTTP Server (GET)
Retrieving a Texture from an HTTP Server (GET)
Downloading an AssetBundle from an HTTP server (GET)
Sending a form to an HTTP server (POST)
Uploading raw data to an HTTP server (PUT)
Advanced operations: Using the LLAPI
Creating UnityWebRequests
Creating UploadHandlers
Creating DownloadHandlers
Audio
Audio Overview
Audio files
Tracker Modules
Audio Mixer
An overview of the concepts and AudioMixer
Specifics on the AudioMixer window
AudioGroup Inspector
Overview of Usage and API
Native Audio Plugin SDK
Audio Spatializer SDK
Audio Profiler
Ambisonic Audio
Audio Reference
Audio Clip
Audio Listener
Audio Source
Audio Mixer
Audio Filters
Audio Low Pass Filter
Audio High Pass Filter
Audio Echo Filter
Audio Distortion Filter
Audio Reverb Filter
Audio Chorus Filter
Audio Effects
Audio Low Pass Effect
Audio High Pass Effect
Audio Echo Effect
Audio Flange Effect
Audio Distortion Effect
Audio Normalize Effect
Audio Parametric Equalizer Effect
Audio Pitch Shifter Effect
Audio Chorus Effect
Audio Compressor Effect
Audio SFX Reverb Effect
Audio Low Pass Simple Effect
Audio High Pass Simple Effect
Reverb Zones
Microphone
Audio Settings
Animation
Animation System Overview
Animation Clips
Animation from external sources
Humanoid Avatars
Creating the Avatar
Configuring the Avatar
Muscle setup
Asset Preparation and Import
Using Humanoid Characters
Preparing your own character
Non-humanoid Animations
Splitting Animations
Looping animation clips
Masking Imported Clips
Animation Curves on Imported Clips
Animation events on imported clips
Selecting a Root Motion Node
Euler Curve Import
Animation Window Guide
Using the Animation view
Creating a New Animation Clip
Animating a GameObject
Using Animation Curves
Editing Curves
Key manipulation in Dopesheet mode
Key manipulation in Curves mode
Objects with Multiple Moving Parts
Using Animation Events
Animator Controllers
The Animator Controller Asset
The Animator Window
Animation State Machines
State Machine Basics
Animation Parameters
State Machine Transitions
State Machine Behaviours
Sub-State Machines
Animation Layers
Solo and Mute functionality
Target Matching
Inverse Kinematics
Root Motion - how it works
Tutorial: Scripting Root Motion for "in-place" humanoid animations
Blend Trees
1D Blending
2D Blending
Direct Blending
Additional Blend Tree Options
Animation Blend Shapes
Animator Override Controllers
Retargeting of Humanoid animations
Performance and Optimization
Animation Reference
Animation Clip
Animator component
Animator Controller
Creating an AnimatorController
Animation States
Animation transitions
Avatar Mask
Human Template files
Importing models
Model Importer: Model
Model Importer: Rig
Model Importer: Animations
Model Importer: Materials
3D formats
Animation HOWTOs
Animation FAQ
Using Blender and Rigify
Playables API
The PlayableGraph
ScriptPlayable and PlayableBehaviour
Playables Examples
A Glossary of animation terms
Timeline
Timeline overview
Timeline workflows
Creating a Timeline Asset and Timeline instance
Recording basic animation with an Infinite clip
Converting an Infinite clip to an Animation clip
Creating humanoid animation
Using Animation Override Tracks and Avatar Masking
Timeline Editor window
Timeline Preview and Timeline Selector
Timeline Playback Controls
Track List
Adding tracks
Selecting tracks
Duplicating tracks
Deleting tracks
Locking tracks
Muting tracks
Reordering tracks and rendering priority
Organizing tracks into Track groups
Hiding and showing Track groups
Clips view
Navigating the Clips view
Adding clips
Selecting clips
Positioning clips
Tiling clips
Duplicating clips
Trimming clips
Splitting clips
Resetting clips
Changing clip play speed
Setting gap extrapolation
Easing-in and Easing-out clips
Blending clips
Matching clip offsets
Curves view
Hiding and showing curves
Navigating the Curves view
Selecting keys
Adding keys
Editing keys
Changing interpolation and shape
Deleting keys
Timeline Settings
Timeline and the Inspector Window
Setting Timeline properties
Setting Track properties
Activation Track properties
Animation Track properties
Setting Clip properties
Activation Clip properties
Animation Clip common properties
Animation Clip playable asset properties
Audio Clip properties
Playable Director component
Timeline glossary
UI
Canvas
Basic Layout
Visual Components
Interaction Components
Animation Integration
Auto Layout
Rich Text
UI Reference
Rect Transform
Canvas Components
Canvas
Canvas Scaler
Canvas Group
Canvas Renderer
Visual Components
Text
Image
Raw Image
Mask
RectMask2D
UI Effect Components
Shadow
Outline
Position as UV1
Interaction Components
Selectable Base Class
Transition Options
Navigation Options
Button
Toggle
Toggle Group
Slider
Scrollbar
Dropdown
Input Field
Scroll Rect
Auto Layout
Layout Element
Content Size Fitter
Aspect Ratio Fitter
Horizontal Layout Group
Vertical Layout Group
Grid Layout Group
UI How Tos
Designing UI for Multiple Resolutions
Making UI elements fit the size of their content
Creating a World Space UI
Creating UI elements from scripting
Creating Screen Transitions
Immediate Mode GUI (IMGUI)
IMGUI Basics
Controls
Customization
IMGUI Layout Modes
Extending IMGUI
GUI Skin (IMGUI System)
GUI Style (IMGUI System)
Navigation and Pathfinding
Navigation Overview
Navigation System in Unity
Inner Workings of the Navigation System
Building a NavMesh
NavMesh building components
NavMesh Surface
NavMesh Modifier
NavMesh Modifier Volume
NavMesh Link
NavMesh building components API
Advanced NavMesh Bake Settings
Creating a NavMesh Agent
Creating a NavMesh Obstacle
Creating an Off-mesh Link
Building Off-Mesh Links Automatically
Building Height Mesh for Accurate Character Placement
Navigation Areas and Costs
Loading Multiple NavMeshes using Additive Loading
Using NavMesh Agent with Other Components
Navigation Reference
NavMesh Agent
Nav Mesh Obstacle
Off-Mesh Link
Navigation How-Tos
Telling a NavMeshAgent to Move to a Destination
Moving an Agent to a Position Clicked by the Mouse
Making an Agent Patrol Between a Set of Points
Coupling Animation and Navigation
Unity Services
Setting up your project for Unity Services
Unity Organizations
Subscriptions and seats
Managing your Organization
Managing your Organization’s Projects
Transfer a Project to a new Organization
Working with Unity Teams
Unity Ads
Unity Analytics
Unity Analytics Overview
Setting Up Analytics
Analytics Dashboard
Overview page
Data Explorer
Funnel Analyzer page
Segment Builder
Remote Settings page
Raw Data Export page
Event Manager
Configure page
Market Insights
Analytics events
Core Events
Standard Events
Custom Events
Custom Event scripting
Analytics Event Tracker
Analytics event parameters
Analytics Event limits
Funnels
Remote Settings
Creating and changing Remote Settings
Using Remote Settings in a Unity project
Remote Settings network requests
Enabling Remote Settings
Managing Remote Settings in the Unity Editor
Remote Settings component
Remote Settings scripting
Testing Remote Settings
Unity Analytics A/B Testing
Monetization
Receipt Verification
User Attributes
Unity Analytics Raw Data Export
Data reset
Upgrading Unity Analytics
Upgrade Unity Analytics 4.x-5.1 (SDK) to 5.2 onwards
Upgrade Unity Analytics 5.1 to 5.2 onwards
Unity Analytics Re-integrate SDK to 5.1
What to Do if Project IDs Don't Match
COPPA Compliance
Unity Analytics and the EU General Data Protection Regulation (GDPR)
Analytics Metrics, Segments, and Terminology
Unity Cloud Build
Automated Build Generation
Supported platforms
Supported versions of Unity
Version control systems
Using the Unity Developer Dashboard to configure Unity Cloud Build for Git
Using the Unity Editor to configure Unity Cloud Build for Git
Using the Unity Developer Dashboard to configure Unity Cloud Build for Mercurial
Using the Unity Editor to configure Unity Cloud Build for Mercurial
Using Apache Subversion (SVN) with Unity Cloud Build
Using the Unity Developer Dashboard to configure Unity Cloud Build for Perforce
Using the Unity Editor to configure Unity Cloud Build for Perforce
Using the Unity Developer Dashboard to configure Unity Cloud Build for Plastic
Building for iOS
Advanced options
Development builds
Pre- and post-export methods
Xcode frameworks
Custom scripting #define directives
Including specific Scenes
Build manifest
Build manifest as JSON
Build manifest as ScriptableObject
Cloud Build REST API
Unity IAP
Setting up Unity IAP
Configuring for Apple App Store and Mac App Store
Configuring for Google Play Store
Configuring for Windows Store
Configuration for the Amazon Appstore
Samsung Galaxy IAP configuration
Cross Platform Guide
Codeless IAP
Defining products
Subscription Product support
Initialization
Browsing Product Metadata
Initiating Purchases
Processing Purchases
Handling purchase failures
Restoring Transactions
Purchase Receipts
Receipt validation
Store Extensions
Cross-store installation issues with Android in-app purchase stores
Store Guides
iOS & Mac App Stores
Universal Windows Platform
Google Play
Amazon Appstore and Amazon Underground Store
Samsung Galaxy apps
CloudMoolah MOO store
Unity IAP Xiaomi integration guide
Unity Channel SDK and API extensions
Implementing a Store
Initialization
Retrieving products
Handling purchases
Store Modules
Registering your store
Store Configuration
Store Extensions
Unity Collaborate
Setting up Unity Collaborate
Adding team members to your Unity Project
Viewing history
Enabling Cloud Build with Collaborate
Managing Unity Editor versions
Reverting files
Resolving file conflicts
Excluding Assets from publishing to Collaborate
Publishing individual files to Collaborate
Restoring previous versions of a project
In-Progress edit notifications
Managing cloud storage
Moving your Project to another version control system
Collaborate troubleshooting tips
Unity Cloud Diagnostics
Unity Integrations
Multiplayer Services
XR
XR SDKs
Google VR
Google VR hardware and software requirements
Google VR quick start guide
Supported APIs and SDKs
Google VR controllers and input devices
Google VR features overview
Unity Google VR Video Async Reprojection
Google VR resources and troubleshooting
Vuforia
Vuforia hardware and software requirements
Vuforia quick start guide
Setting up your Project for Vuforia
Setting up Image Targets
Importing and activating the Target Database in Unity
Adding Image Targets to your Scene
Displaying 3D models on top of tracked images
Vuforia platform configuration settings
Vuforia tips, troubleshooting and resources
Windows Mixed Reality
WMR hardware and software requirements
WMR quick start guide
WMR input and interaction concepts
WMR testing during development
HoloLens WorldAnchor persistence
HoloLens Anchor Sharing
HoloLens Web Camera
HoloLens photo capture
HoloLens video capture
HoloLens Spatial Mapping
Spatial Mapping components
The settings below are common to both __Spatial Mapping Renderer__ and __Spatial Mapping Collider__ components.
Spatial Mapping Collider
Spatial Mapping Renderer
Spatial Mapping low level API
Spatial Mapping common troubleshooting issues
Unity XR input
Input for Windows Mixed Reality
Input for OpenVR controllers
Input for Oculus
Daydream Controllers
XR API reference
Mixed Reality Devices
VR overview
VR devices
Oculus
OpenVR
Single Pass Stereo rendering (Double-Wide rendering)
Single Pass Instanced rendering
Single-Pass Stereo Rendering for HoloLens
VR Audio Spatializers
Open-source repositories
How to contribute to Unity
Step 1: Get a Bitbucket account
Step 2: Fork the repository you want to contribute to
Step 3: Clone your fork
Step 4: Apply modifications to your fork
Step 5: Open a pull request on Bitbucket
Step 6: Wait for feedback
Further Reading
FAQ
Asset Store Publishing
Adding Keywords to Assets
Asset Store Publisher Administration
Asset Store FAQ
Asset Store Publishing Guide
DeprecateAssetGuide
Asset Store Manual
Publisher Admin Section Overview
Setting up Google Analytics
Viewing the status of your Asset Store submissions
Refunding your customers
Removing your Assets from the Asset Store
Providing support
Asset Store promotions
Platform development
Standalone
Standalone Player Settings
PC, Mac & Linux Standalone build settings
Multi-display
macOS
Delivering your application to the Mac App Store
Apple TV
Building games for Apple TV
WebGL
WebGL Player Settings
Getting started with WebGL development
WebGL Browser Compatibility
Building and running a WebGL project
WebGL: Deploying compressed builds
Debugging and troubleshooting WebGL builds
WebGL Graphics
WebGL Networking
Using Audio In WebGL
WebGL performance considerations
Memory Considerations when targeting WebGL
WebGL: Interacting with browser scripting
Using WebGL Templates
Cursor locking and full-screen mode in WebGL
Input in WebGL
iOS
Getting started with iOS development
Unity iOS Basics
iOS account setup
Inside the iOS build process
Structure of a Unity XCode Project
Customizing an iOS Splash Screen
iOS Hardware Guide
iOS Player Settings
iOS 2D Texture Overrides
Upgrading to 64-bit iOS
iOS Advanced Topics
Unity Remote
iOS Scripting
iOS Game Controller support
Advanced iOS scripting
Optimizing Performance on iOS
iOS-specific optimizations
Measuring performance with the built-in profiler
Optimizing the size of the built iOS Player
Optimizing Physics Performance
Building plug-ins for iOS
Preparing your application for In-App Purchases (IAP)
Customising WWW requests on iOS
App thinning
Managed stack traces on iOS
Features currently not supported by Unity iOS
Troubleshooting on iOS devices
Reporting crash bugs on iOS
Android
Getting started with Android development
Android environment setup
Unity Remote
Android Remote (DEPRECATED)
Troubleshooting Android development
Inside the Android build process
Reporting crash bugs under Android
Support for APK expansion files (OBB)
Android Scripting
Advanced Unity mobile scripting
Building and using plug-ins for Android
AAR plug-ins and Android Libraries
JAR plug-ins
Extending the UnityPlayerActivity Java Code
Native (C++) plug-ins for Android
Customizing an Android Splash Screen
Single-Pass Stereo Rendering for Android
Android Player Settings
Android 2D Textures Overrides
Gradle for Android
Gradle troubleshooting
Android Manifest
Facebook
Getting started with Facebook development
Facebook Player Settings
Windows
Windows General
Windows standalone Player build binaries
Windows Debugging
WindowsLowIntegrity
Universal Windows Platform
Getting Started
Universal Windows Platform: Deployment
Universal Windows Platform: Profiler
Universal Windows Platform: Command line arguments
Universal Windows Platform: Association launching
AppCallbacks class
Universal Windows Platform: WinRT API in C# scripts
Universal Windows Platform Player Settings
Scripting Backends
Universal Windows Platform: .NET Scripting Backend
Universal Windows Platform: Generated project with .NET scripting backend
Universal Windows Platform: Missing .NET Types on .NET Scripting Backend
Universal Windows Platform: Plugins on .NET Scripting Backend
Universal Windows Platform: Debugging on .NET Scripting Backend
Universal Windows Platform: IL2CPP scripting back end
Universal Windows Platform: Generated project with IL2CPP scripting backend
Universal Windows Platform: Plugins on IL2CPP Scripting Backend
Universal Windows Platform: Debugging on IL2CPP Scripting Backend
FAQ
Universal Windows Platform: Examples
Universal Windows Platform: Code snippets
Known issues
Mobile Developer Checklist
Crashes
Profiling
Optimizations
Practical guide to optimization for mobiles
Graphics Methods
Scripting and Gameplay Methods
Rendering Optimizations
Optimizing Scripts
Experimental
Getting started with UIElements
Progressive Lightmapper
Lightmap seam stitching
Scripted Importers
Look Dev
Overview
The Look Dev view
Control panel
Settings menu
Views menu
HDRI environments in Look Dev
The HDRI view
HDRI menus
Environment Shadow
Scripting Runtime Upgrade
Scriptable render pipeline
Legacy Topics
Windows Store: Windows SDKs
Windows Phone 8.1
Windows Phone 8.1: Debugging
Windows 8.1 Universal Applications
Universal Windows 10 Applications: Getting Started
Asset Server (Team License)
Setting up the Asset Server
Legacy Network Reference Guide
High Level Networking Concepts (Legacy)
Networking Elements in Unity (Legacy)
Network Views (Legacy)
Network View
RPC Details (Legacy)
State Synchronization Details (Legacy)
Network Instantiate (Legacy)
Network Level Loading (Legacy)
Master Server (Legacy)
Building the Unity Networking Servers on your own (Legacy)
Minimizing Network Bandwidth (Legacy)
Legacy Asset Bundles
Creating Asset Bundles in Unity 4
Managing Asset Dependencies in Unity 4
Legacy Animation System
Animation
Animation Scripting (Legacy)
Legacy GUI
GUI Text (Legacy UI Component)
GUI Texture (Legacy UI Component)
Legacy Unity Analytics (SDK Workflow)
Basic Integration (SDK)
Import SDK
Create Game Script
Attach Game Script
Play To Validate
Advanced Integration (SDK)
Custom Events
Monetization
Receipt Verification
User Attributes
LegacyUnityRemote
Unity Remote
Unity Remote 3 (DEPRECATED)
Best practice guides
Understanding optimization in Unity
Profiling
Memory
Coroutines
Asset auditing
Understanding the managed heap
Strings and text
The Resources folder
General Optimizations
Special optimizations
Making believable visuals in Unity
Preparing Assets for Unity
Preparing render settings in Unity
Lighting strategy
Modelling
Shading
Outdoor lighting and Scene setup
Indoor and local lighting
Understanding post-processing
Dynamic lighting
Expert guides
New in Unity 2017
This version of Unity is unsupported.
Unity User Manual (2017.4)
Animation
Animation Reference
Importing models
Human Template files
Model Importer: Model
Importing models
There are four tabs in the Model Importer:
The
Model tab
has settings for importing the 3D model.
The
Rig tab
has settings which will allow this 3D model to support animation.
The
Animations
tab has settings for importing one or more Animation Clips from this model file.
The
Materials
tab has settings for adjusting and extracting Materials from imported models.
See also
3D file formats
Human Template files
Model Importer: Model