A newer version of Unity has been released since Unity 1.5. Check out the current release notes to find out what's really new.
Major New Features
Feature #1: Windows web-browser plug-in
With the new Windows web browser plug-in, Unity web games are ready for prime-time. Just create your content normally, then use the File -> Build Settings... menu to take your web game live.
Your games will get the attention they deserve.
Feature #2: Character Animation
Unity 1.5 has a brand new animation system. It now supports animation blending, mixing, additive animations, walk cycle time-synchronization, animation layers, control over all aspects of the animation playback (time, speed, blend-weights), and mesh skinning with 1, 2 or 4 bones per vertex (can be controlled with quality settings) – in addition to our classic ragdolls.
But don't let the buzzwords scare you – it's still easy to set up and use.
Feature #3: Universal Binary
You've got a brand new MacBook Pro: now what pro software are you gonna run on it? Unity, of course. Unity 1.5 is now a fully universal application – so you can make your games even faster than before.
We've been testing Universal Unity for the past months, so we know it'll fry you with its speed-induced heat.
Feature #4: High-speed Car Physics
Ever wanted to drive at insane speeds? Now you can get that off your chest by making your very own racing game. For Unity 1.5 we've added a dedicated wheel collider that accurately simulates the traction model of real cars.
It has never been so easy to create racing games, or for that matter cool mountable vehicles for your first person shooters.Wheel Collider docs
Feature #5: More Full-Screen Filters!
We added another batch of filters to really make your Unity games shine. Use the Noise Filter to get a grainy black-white look (complete with hair on the film stock). Make your sci-fi worlds live in vivid colors using the Glow Filter. Or give life to your horror game with the dynamic Contrast Stretch. This is a Unity Pro feature.
Feature #6: Mesh Script Interface
In Unity 1.5 you have full access to all vertex data / normals / tangents / colors / UVs and triangles.
Feature #7: Textures Script Interface
Generate or modify textures on the fly. Or use textures as source data for anything (generate terrains from heightmaps, analyze image colors, ...).Texture2D documentation
Feature #8: Particle Script Interface
The last entry in Unity's new full control programme is a fully exposed particle interface. You can now manually spawn particles and give them arbitrary position, velocity, size, and color. You can loop through all existing particles and animate them from a script, adding or removing particles you want.ParticleEmitter documentation
Feature #9: Lightmap Support
Now lightmaps are fully supported. Bake the light in your 3D app of choice, then import painlessly into Unity for that contrastful look.
Feature #10: TrueType Typography
Just drag any TrueType font (.ttf) into the project. Create a GUI Text or Text Mesh and drag the imported font onto the font property.
Feature #11: Cinema 4D Importer
Cinema 4D files are now imported natively. If Cinema 4D is not already running Unity will launch it and automatically install a converter plug-in. The whole process is completely seamless, just drop your .c4d files into the project.
Feature #12: Documentation & Tutorials
We now have 5x as much documentation as before. Everything has been read, reread, corrected and polished. All components now have annotated screenshots. Thanks to Sam Kalman for helping us out on this project.
Unity 1.5 also includes five tutorials covering a wide range of topics.
After all, what good is the world's best tool if you can't figure out how to use it?Documentation & Tutorials
Other New Features
In addition to the above Unity 1.5 includes more than 256 new small features, improvements. Here are most of these.
- Fullscreen AntiAliasing and Sync to vertical retrace (Set it up in Edit -> Quality Settings)
- Improved texture compression quality and speed. We also now support DXTC5 texture compression which is better for textures with compressed alpha.
- Water cleanup/additions:
- Water prefab now reflects the skybox
- Wave speed is now independent of wave scale
- Made property names clearer
- Added reflective & refractive water in Unity Pro
- Optimized the shaders
- Pro Standard Assets:
- Added reflective & refractive water
- Optimized all water shaders, made property names clearer
- Added Glow, Noise and Contrast Stretch image effects
- Glow uses extra brightness from alpha channel, you may want to set main color of your materials to use zero alpha
- Blur image effect more efficient at doing large blurs
- Edge Detect effect now uses a different and faster filter
- Image effects now no longer print "no subshaders..." warning on old video cards
- Builtin shaders cleanup:
- Added lightmapped shaders
- Properly handle texture placement offset
- Work nice with glow (put extra brightness into alpha, i.e. specular highlights)
- Diffuse shader is now truly per-pixel, so you can have bright lights near big polygons
- There is a Diffuse (fast) shader which does the same as the old diffuse
- DiffuseDetail now does a proper detail texture (i.e. gray texture has no effect)
- Most of the shaders are faster
- Skybox shaders use background render-queue
- Added light culling mask. This allows you to selectively apply lights to only some objects
- GUILayer now renders after all image effects
- Shaderlab now supports Fallback off statement, which won't complain if no subshaders can run
- ShaderLab now uses the Cg 1.4.1 compiler
- Renamed FileTexture to Texture2D
- Renderers can now be made invisible: Use renderer.enabled = false;
- Added Animation WrapMode.ClampForever, this is very useful with additive animation blending
- Added GameObject.CreatePrimitive() function for creating primitives from code
- A Material's texture placement (offset & scale) can be set from scripts
- Added a SendMessageUpwards() function
- Fog and ambient lighting settings are now exposed to the script interface. Use RenderSettings.fogColor = Color.white;
- GetComponent() can now also be used with a string. This is useful for accessing scripts written in other languages
- Added AddExplosionForce() and ClosestPointToBounds() function to rigidbody
- Scripting access to make rigidbodies sleep and solver iteration count:
- Sleep minimum velocity can be overridden per rigidbody.
- Rigidbody.Sleep() can force a rigidbody to start sleeping
- Rigidbody interpolation. This is an extremely important feature if your main character or vehicle is a Rigidbody. This will remove any stuttering on the Rigidbody, which is most visible when you have a camera following it. For non-player Rigidbodies, there is no need to use interpolation as it doesn't make any visible difference and comes at a tiny performance cost
- Improved CharacterController stability. You can now use the CharacterController from inside the Update() function too. Movement also appears smooth now
- Joystick improvements: Unity now contains an XML file for overriding reported joystick minimum and maximum values (Saitek joysticks report skewed min and max values). If you have a joystick that doesn't work correctly please try adjusting the XML file and send back the results so we can ship them to all Unity users
- Improved multi-monitor support. When going fullscreen, Unity will now choose the monitor that the screenselector was placed in
- Alt-Enter now toggles fullscreen mode in standalone Windows players
- Project Settings now have an option to always display the Unity watermark
- Quality Settings made much more flexible. They allows you to associate graphics quality settings to the ScreenSelectors quality setting
- Using skyboxes is much faster now (does depth clear in hw-friendly way)
- Editor performance optimizations in high object count scenes with a lot of gizmos
- Up 300% performance improvement when rendering skinned meshes. You can selected the number of weights used per bone (1, 2 or 4). It is also possible to select the accuracy used when transforming normals. If your mesh is not scaled, Fast will look just as good as Accurate but take up much less processing power
- 300% performance improvement for rendering of high poly count meshes on Windows
- By default imported skinned meshes are now set to only process if visible. This implies that the bounding box will not change after it has been built the first time. If you are not animating a character but for example a big crane and you see the object popping into view too late, disableonly update if visible.
- Greatly improved editor grid rendering
- Added Layers menu to Scene View
- Renamed inspector expert mode to debug
- Renamed LightManager to Render Settings
- Renamed ProjectSettings to Player Settings
- Performance optimizations when entering playmode in the editor
- Improved null reference exception messages. When encountering exceptions, Unity will now display much more readable warnings about what has gone wrong:
- UnassignedReferenceException: The variable target of SuperMarioCamera has not been assigned. This happened in the game object "Main Camera".
You probably need to select the "Main Camera" in the hierarchy and assign the target variable of the SuperMarioCamera script in the inspector.
- Support for Collada 1.4 files
- Support for importing .dxf and .obj files
- Added Collada based Blender importer. This fixes several bugs in the handling of rotations and pivot points (some Blender files would import rotations incorrectly). While this version doesn't add any new features, it will allow importing animations once the Collada exporter for Blender supports it. At the moment it supports importing UVs, normals, and vertices. This importer is more streamlined and requires Blender version 2.4. If you have a Blender file that was already imported with an earlier version of Unity, in order to stay consistent with the old imported file the new Blender importer will not be used. To use the new importer simply duplicate the Blender file in the Finder.
- Unity packages (.unitypackage) can now be opened with a double click in the Finder
- The default global scale when importing .fbx files directly is now 0.01 instead of 1.0. This fits how most modelers except Maya work.
- Worked around several issues in the Lightwave .fbx exporter when exporting meshes with assigned textures. You can now assign multiple textures to the same mesh in Lightwave and it will import correctly into Unity
Text and GUI
- Added GUI Text pixelOffset
- Added a Create 3D Text menu command. This will create a complete Text Mesh. Selecting a font asset before fist will assign that font to the created Text Mesh
- GameObject -> Create -> GuiTexture now creates a GUI Texture with the size of the texture that will maintain its pixel size regardless of resolution
Bug-fixes and polish
- Audio Listener added to FPS camera prefab in standard assets
- Unity now works around an issue with a new version of the (now broken) Quicktime LiveType.component
- When playing an animation and it is the last active animation, it will clamp to the last frame instead of just stopping before the frame
- Updated OS X version of the web player to support multiple plug-in instances and work better with FireFox
- Added background render-queue and fixed overlay render-queue to work correctly
- Remove ambient light scale property from light manager inspector
- Fixed water shader and reflection shader on Intel cards
- Fixed progress bar in the web player
- Fixed Dashboard Widget loading to be backwards compatible
- Fixed menu bar not being restored correctly after fullscreen
- Fixed game view sometimes drawing garbage pixels on screen
- Fixed layout issue in preferences dialog
- Default camera doesn't contain skybox component by default anymore to avoid confusion (use Edit -> Render Settings instead)
- Fixed crashbug when using imported meshes with zero vertices
- Fixed move tool handles becoming black on rare occasions
- Fixed Blender importer bug when using orthographic cameras in Blender
- Worked around NVIDIA graphics card issues with water on OS X
- Fixed fallback effects not using UsePass/GrabPass correctly. This resulted in ATI cards not falling back correctly with bumped specular shader
- Fixed Edit -> Select All to work correctly
- Fixed minor bugs in the script interface of the Light component
- Fixed particle systems animating when not selected and in edit mode when moving around in scene view
- ShaderLab now supports different line endings (LF, CR, CRLF).
- Fixed 50mm flare in standard assets
- Fixed Line Renderer color interpolation issue
- Fixed rare crash or reboot when recompiling shaders often
- Fixed crashbug when setting Hinge Joint damper value to less than zero in the inspector
- Fixed bug where Unity didn't hide the menu bar correctly in fullscreen mode
- Fixed crash in texture upload on Windows when using Fastest display quality or using Texture.masterTextureLimit
- Fixed bug in particleEmitter.particles when assigning energy and color
- Fixed wrong values shown in material inspector after doing a Reset
- Fixed crashbug in mesh particle emitter when the mesh contains no normals
- Worked around OpenGL driver bug on Geforce FX 5200 cards using PowerOfTwo Render Textures
- On Windows, three argument texture combiners (a*b+c, a*b+-c) now work on nVidia cards
- Worked around an Apple OpenAL crashbug when playing streaming Ogg Vorbis sounds. The workaround simply preloads the whole Ogg Vorbis instead of streaming it. We are pushing Apple to fix this issue, so that we can enable streaming Ogg Vorbis sounds again
- Tool handle doesn't wiggle anymore when a particle system is selected
- Fixed raycast collider triggers to report trigger events correctly on Windows
- Fixed exiting fullscreen mode in OS X standalone player to fade out correctly before the resolution switch
- Fixed crashbug that sometimes occurred when starting Unity and hitting play
- Fixed a crashbug when storing an AnimationState in a member variable
- Fixed wrong colors in 2x2 MIP level when using RGB 24 bit textures
- Fixed a rare crash when setting material properties from scripts
- Screen.showCursor = false; now actually works on Windows
- Folders with extensions in the path name are now displayed correctly in the editor
- Fixed rare (and random) crashbug when recompiling scripts
- Fixed issue where the lowest MIP-map levels of compressed textures would sometimes result in random pixels
- Holding down shift while dragging the scene view camera actually moves 3 times faster now
- Fixed bug when loading the first level multiple times, where triggers would sometimes fail working
- Fixed several joystick input bugs:
- Screen selector input configuration for joysticks has a less sensitive deadzone when configuring now
- Mouse buttons can now be configured
- Configured key names shown in the screen selector are nicer formatted now
- The idle center of the joystick is calculated correctly now
- Fixed wrong lighting bug when multiple pixel lights are placed at the same position
- Fixed possible lockup on Windows when switching from fullscreen to windowed mode on some drivers
- Fixed lighting issue when using bump specular shader on skinned characters (tangents were not transformed correctly)
- When unpausing the player all input will now be reset:
- Activating the player window with a click will not let the mouse event go through)
- Fixed an editor issue, where a key became sticky when pressing command and an arrow key at the same time
- Keys will never get stuck
- Fixed an issue where changing scripts while in playmode and using animations sometimes would disconnect the animation state
- Fixed scene view losing camera position setting when going into playmode while a view is maximized
- When going out of game mode and a scene view was switched into a gameview it will now be restored
- Fixed LightManager flare strength not updating live
- Fixed annoyance where a wireframe would sometimes go out of sync with real mesh when changing scale
- Fixed reflective shaders on Intel GMA cards (MacBook, Intel MiniMac)
- Fixed water to display better on Intel GMA cards
- Fixed fallback effects not using UsePass/GrabPass correctly
- Fixed Render Texture clearing on GeForce cards
- Fixed possible lockup on Windows when switching from fullscreen to windowed mode on some drivers
- On Windows Unity no longer thinks GeForce 6/7 does not support 3D textures :)
- Fixed wrong lighting bug when multiple pixel lights are placed at the same position
When making middleware for such a wide audience as we do, one of the challenges is that many of the end users of our customer's games have outdated hardware and graphics drivers. The solution? We've spent massive resources testing our runtime on these platforms. Thus, we're proud to announce Unity 1.5.1, with rock-solid support for a terrifying range of old hardware/software combinations.
Major New Features
Feature #1: Support for old hardware and drivers
When making middleware for such a wide audience as we do, one of the challenges is that many of the end users of our customer's games have outdated hardware and graphics drivers. Some of these drivers are awfully broken, and functionality that is documented to work, doesn't. The solution? We've spent massive resources testing our runtime on these platforms and working around driver bugs. Thus, we're proud to announce Unity 1.5.1, with rock-solid supports for a terrifying range of old hardware/software combinations.
While not the sexiest of "features", the benefits are massive: reduced support costs, reduced quality assurance, and increased market reach. The result is that you have more time to make a great game. This is critical to anyone who wants to make games for a wide casual audience.
Feature #2: Unicode Support
Unity finally supports Unicode for game localization. Japanese? Chinese? Korean? Not only westerners play games.
Unicode TrueType fonts now import correctly and it is possible to enter Unicode characters into strings in the inspector. Scripts can even be saved in the UTF16 encoding which allows them to contain complete Unicode strings.
Feature #3: Car Wizard
Unity 1.5 brought high-speed physical modelling of vehicles, with suspension, tires and that whole racing-thing. With Unity 1.5.1 it's become really easy with a new "car wizard". Drag in a car model, run the wizard, set your parameters, drive.
New Example Project #1: 3D Platform Game
Want to make a 3D platformer in the style of "Super Mario 64", complete with jump-pads, feel-good camera controls, and a cute (or scary) animated character? This example project has scripts to control such a game. Loads of goodies include: scripts, 3D objects and rigged character complete with textures and animations.
As always, the assets from the example projects can be used free of charge commercially (and well as non-). The scripts are well written and can be extended and repurposed. 3D Platform Game project
New Example Project #2: Nature Rendering
To help you create gorgeous terrains with foliage such as animated grass and trees, we added this example project. It includes several really cool parts: A grass generator script to dynamically generate leaves of grass across a terrain mesh, foliage and terrain shaders, and two fully textured sample trees.
As always, the assets from the example projects can be used free of charge commercially (and well as non-). The scripts are well written and can be extended and repurposed. A web player The Nature Rendering project
We weren't relaxing these last months. We've been hard at work responding to your suggestions and improving Unity back to back. Unity supports native importing of files from the newly released packages, Maya 8 and Cinema 4D 9.0 + 9.1, and improves the native support for complex hierarchies in Blender.
Unity 1.5.1 has also been optimized. Complex scenes render 15% faster, and a new script has been added to combine objects, which can provide for massively increased rendering speeds.
Ogg Vorbis playback improved
- Improved playback of very short Ogg Vorbis clips on Intel Macs and Windows.
- Enabled Ogg Vorbis streaming on Intel Macs on OS X 10.4.7+, because Apple's OpenAL driver has been patched.
- Worked around an issue in the Ogg Vorbis importing when a buggy QuickTime component is present.
- The New Project wizard is now clearer.
- Asset / object pop-up selector now sorts items correctly, and does not show any invalid items.
- Unity now waits until all scripts have finished compilation before entering play-mode.
- Improved Texture inspector now displays texture's size, format and compression.
- Improved Render Texture inspector. Size, wrap and filtering can be set up now.
- Improved icons for Fonts, Scripts, Unity scenes, Cubemaps, Shaders and Physic Materials.
- Improved display of WheelCollider components in the scene view.
- Alpha-only textures now display alpha channel automatically in the project view and inspector.
- Adding elements to completely empty string arrays in the inspector is now possible.
- Show a warning when trying to save scene outside of the project folder.
- Show a warning when saving two scripts with the same name.
- Worked around an issue in .fbx files containing duplicate bones.
- Worked around an issue in 3ds max's .fbx converter where path names would come through incorrectly, leading to textures not being found.
- Much improved scripting and ShaderLab documentation.
- Added WWW.bytes property to read raw bytes over the network.
- Added Physics.RaycastAll() and Physics.TestCapsule() functions.
- Added CharacterController.center property.
- Added Shader.Find() function which finds existing shaders by name.
- Added Input.GetAxisRaw() function which returns an input axis with no smoothing applied.
- Added GuiText.anchor, GuiText.alignment and GuiText.tabSpacing properties to allow complete script control.
- Added Mathf.SmoothDamp() function for a tunable smooth damping. Useful for following cameras.
- Added Mathf.SmoothStep() function.
- Renamed CollisionFlags.CollideSides to CollisionFlags.Sides. Added CollisionFlags.None. (CollisionFlags.CollideSides still works but is deprecated).
- Rigidbody.useGravity will now wake up a Rigidbody when enabled.
- Massive improvements of graphics card and driver compatibility on Windows. We worked around a lot of broken graphics card driver bugs, including some very old ones. We have tested against most graphics cards with different driver versions. In particular:
- Fixed rendering artifacts on most Intel cards (845, 865, 945).
- Worked around older ATI drivers parsing vertex programs incorrectly.
- Disabled software vertex programs on DX7-level NVIDIA and Intel cards.
- Worked around a crash with render textures with pre-30.82 NVIDIA drivers.
- Worked around a crash with pre-22.214.171.12491 Intel drivers.
- Worked around crashes on S3 Savage/ProSavage/Twister cards.
- Worked around a crash on VIA/S3 UniChrome cards falsely claiming they're OpenGL 1.2.
- Worked around some SiS 630/651/730 drivers falsely claiming they're OpenGL 2.0.
- Various graphics cards have trouble when performing rendering from a separate thread (most ATI and Intel drivers). Disabled multithreaded rendering on those.
- On some ATI drivers, the Unity Web Player could hang when getting out of full-screen.
- Unity Web Player on Windows now grays out full-screen menu item if it is not safe to switch to full-screen mode due to buggy graphics card drivers.
- Glow effect looks a lot nicer. Less white fringes around, finer control of glow color based on the object's color.
- The color of a text material can now be modified and is stored when closing the project.
- Graphics performance optimization with up to 15% faster rendering when many objects are visible.
- Decal shader now behaves similar to VertexLit, but with a second (decal) texture.
- Improved sorting for transparent objects. Transparent objects are now sorted by now sorted by bounding volume center instead ofTransform.position.
- Particle shaders look much better on really old (single texture) graphics cards.
- Fixed glossy/specular vertex lighting suddenly changing sometimes (on full-screen switches and level loads).
- Intel integrated graphics cards now support vertex and pixel shaders on the Mac (MacBook and MacMini).
- When using animated particle textures in the ParticleRenderer, the UVs pointed to the wrong tile on the first frame.
- Linear eye-space UV generation (TexGen EyeLinear) in shaders now works correctly.
- Projectors are now culled correctly by the camera's culling mask.
- Fixed issue where the Projector flips textures vertically when using an orthographic projection.
- MotionBlur filter is no longer too dark on some Windows machines. It also runs on more graphics cards now.
- Spotlight cookies are not mirrored anymore.
- Flare layouts 2x2, 3x3 and 4x4 now work correctly.
- Fixed errors with Reflective shaders that would occur in some situations.
Unity Web Player
- Firefox on Intel Mac is now supported too.
- The loading bar is now drawn correctly for small games.
- Loads much faster and doesn't leak resources on OS X.
- It is possible to detect where the game was loaded from (both the srcValue and the absolute url) as Application.srcValue andAppliction.absoluteUrl.
- For computers that do not have any OpenGL drivers, a warning is issued before continuing with software rendering.
- Unity Web Player on Windows runs much faster in full-screen, and full-screen mode is entered faster.
- Unity Web Player mouse position in Firefox now works correctly.
- Screen selector dialog can now be hidden by default. The new options in the player settings are:
- Enabled by default.
- Disabled completely.
- Disabled by default, but shown when holding down ALT during launch.
- Reduced mouse sensitivity on Windows to be more like on the Mac.
- Unity games can now be run headless (without requiring a monitor), using a -batchmode command line argument (requires Unity Pro).
- Fixed an issue with OnMouseDown when using multiple overlaid cameras and culling masks.
- Fixed issues with keystrokes being lost and keys being stuck.
- Fixed issue in package importing on network-booted setups.
- Unitron no longer starts two recompiles (once when saving the file and once when activating Unity).
- Dashboard Widgets now render non-fullscreen cameras at the right position.
- Fixed an occasional crash when exiting a standalone game from the screen selector on Windows.
- ForceMode.Acceleration now works correctly. Previously the parameter would be on the scale of an impulse instead.
- Fixed an issue in Camera.WorldToViewportPoint() and Camera.ScreenToViewportPoint() functions when using non-fullscreen cameras.
- Random.RandomRange(min, max) integer function now returns min when min equals max.
- When creating Materials from code they are now shown in the inspector.
- SpringJoint.damper property now applies correctly when set from a script.
- Collider.bounds now returns the real bounding volume.
- ControllerColliderHit.normal now returns the correct surface normal (instead of sometimes returning its inverse).
- Fixed a bug where assigning a particles array would not allow resizing the rendered particles.
- Fixed a bug where Material.GetColor(name) right after creating the material from a script always returned black.
- Fixed an issue where split-screen cameras had inconsistent Flare rendering for the top-most camera.
- Fixed a crash which occurred when using GetComponent() with a null argument.
- Fixed a crash which occurred when providing negative coordinates to GetPixel() when texture wrap mode was set to repeat.
- Fixed a crash which occurred in a overridden OnEnable() function when recompiling scripts in play-mode.
- Fixed a crash which occurred in GuiElement.HitTest() if no current camera is available. It now uses an imaginary full-screen camera when no camera is found.
- Fixed a crash which occurred when setting properties of a Rigidibody created from a script, which is attached to an inactive GameObject.
- Fixed a crash that occurred on some computers when exiting Unity.
- Fixed a crash that occurred when using "1 texture" flare layout.
- Fixed several bugs that could crash Unity when importing some fonts.
- Fixed freeze which could occur when Unity is brought to the foreground.
- Fixed crash when setting the spring parameter of a Spring Joint.
- Fixed rare crash when using AudioSource.PlayOneShot() with Ogg Vorbis audio clips.
- Fixed crash bug on PPC based Macs with some Ogg Vorbis files.
- Fixed OpenAL loading on some Creative sound cards on Windows.
- Removed a warning saying that the editor scripts could not be loaded.
- Fixed an issue where drag&drop sometimes needlessly scrolled the hierarchy view horizontally.