Unity 3D is a cross-platform game engine with a built-in IDE. It is used to develop video games for web plugins, desktop platforms, consoles and mobile devices, and is utilized by over one million developers. It currently supports development for iOS, Android, Windows, Blackberry 10, OS X, Linux, web browsers, Flash, PlayStation 3, Xbox 360, Windows Phone 8, and Wii U.
The graphics engine uses Direct3D, OpenGL, OpenGL ES, and proprietary APIs. There is support for bump mapping, reflection mapping, parallax mapping, screen space ambient occlusion (SSAO), dynamic shadows using shadow maps, render-to-texture and full-screen post-processing effects.
Features of Unity 3D:
- Shuriken particle system supports external forces, bent normals and automatic culling.
- 3D texture support.
- Navigation: dynamic obstacles and avoidance priority.
- Major optimizations in UnityGUI performance and memory usage.
- Dynamic fonts on all platforms with HTML-like markup.
- Remote Unity Web Player debugging.
- New Project Window workflows.
- Iterative lightmap baking.
- Refined component-based workflows.
- Extensible inspectors for custom classes.
- Improved Cubemap import pipeline.
- Geometry data improvements for huge memory and performance savings.
- Meshes can be constructed from non-triangle geometry—render points & lines efficiently.
- Search, live preview and buy Asset Store assets from the Project Window.
Changes in recent version
- Scene Management: Freeze or crash on EditorSceneManager::ReloadScene when importing an Asset and reloading the opened Scene.
- Serialization: Editor crashes on RaiseException when allocating huge amount of memory.
- Templates: Editor Crashes when performing Undo and Redo after duplicating Game Object with LEGO Model Asset component.
- Linux: Linux Editor crashes with "mmap(PROT_NONE)" assertion failure during GC in Play Mode.
- Mobile: Screen.dpi returns 0 on iPad Pro for projects built from 2019.4.16f1 (1300359)
- Global Illumination: Reflection Probe is not baked after pressing "Bake" button in the per-probe Inspector window.
- Physics: Crash in physx::NpArticulationReducedCoordinate::createCache() when calling JointState.SaveJointState for unparented bodies.
- Scripting: Application.quitting event is not raised when closing build.
- CodeEditors: Crash on System.Net.Sockets.Socket:QueueIOSelectorJob when using a VPN and opening a project that uses Visual Studio.
- Asset Importers: [Performance Regression] Importing an fbx model is noticeably slower when the model contains Animations.
- Linux: InputSystem's Mouse delta values do not change when the Cursor lockState is set to Locked.
- Shader System: [URP Template] Major performance drop in the Editor during Play Mode.
- Windows: The Cursor is visible when Cursor.visible is set to false and new InputSystem package is used.
- MacOS: macOS builds no longer run when with a quarantine attribute due to incorrect codesigning.
- uGUI: AspectRatioFitter gives a warning when changing the Components Aspect Ratio if it's attached to a Canvas.
- Texture: uGUI in Texture2D is different than in the Game view when calling ToTexture2D() method on a RenderTexture.
- Global Illumination: [macOS] BugReporter doesn't get invoked when the project crashes.
- Polybrush: [PolyBrush] Something went wrong saving brush settings Warning is thrown when Saving a Brush after opening the PolyBrush Window.
- Shader System: Build for DirectX12 fails due to shader compiler errors.
- Templates: [Linux] Missing libdl.so library causes crash when entering Playmode for the second time or closing the Editor.
- Serialization: JsonUtility Deserialization Corrupted Values.
- Cloth: Skinned Mesh Renderer's Bounds Extent is set to half of the Transform's Scale when using a Cloth Component.
- XR: [XR SDK][Oculus] EarlyUpdate.XRUpdate spikes inconsistently.