Unity 1.2

Note: A several versions of Unity have been released since Unity 1.2. Check out the current release notes to find out what's really new.

Feature #1: Full-Screen Graphics Effects

Unity already contains a top-notch graphics engine. Now there's even better use for it: we've added an easy-to-use framework for beautiful realtime full-screen graphics effects, utilizing the advanced shading engine to do effects such as full-screen motion-blur.

The graphics effects are easy to attach to the camera and can be stacked. Here is an example of the color correcting filter, grayscale, sepia, and twirl. All of them have parameters to tweak.

This is a Unity Pro feature.

Feature #2: Render Textures On Materials

You can assign a render texture to all normal materials – this makes it easy create effects such as security cameras that render into a monitor object.

This is a Unity Pro feature.

Feature #3: Physics Improvements

Unity 1.2 is very much about physics. Read more to see what we added and improved.

Feature #4: Ragdoll Wizard

A Wizard that finally makes it easy to create ragdolls.

Feature #5: Professional 1st Person Controller

Focusing on the needs of game developers, we created a drop-in first person controller, so any scene can instantly be made into an FPS game or a walkthrough.

You can set the speed of movement and rotation, size of obstacles needed to curb the movement, height of the jump (if any) that the player can do, and more.

Or explore the script to learn and to extend it to customize your game: we make it easy for you to get started, but we don't lock you down with hard-coded behavior.

Feature #6: Workflow Extensibility

Unity delivers the best in end-to-end 3D content editing. Now the built-in tools can be extended, and new workflows added. User created wizards, context menus, and menu items can automate processes and repetitive tasks, and make editing complex games faster and less error-prone.

An example of a wizard is the new Ragdoll Wizard, which simplifies the fairly complex task of making a character into a ragdoll. With a little drag'n'drop anyone can now create ragdolls. A team can define its own workflows as needed.

The amazing thing is that we've managed to make it really simple, so a few lines of scripting will create a graphics wizard that performs actions on objects in the scene, instantiates new objects, or collects information.

Feature #7: Massive Material Refactor

One of the larger behind-the-scenes things we did for Unity 1.2 was a massive cleanup of the material system code.

The main reason for this was to make it easier to maintain and add new features, as well as open up the road for increasing rendering speed. Already we've seen a small speedup, but the bigger boost will come in later releases. And we added a new streamlined Material Inspector.

Feature #8: Blob Shadows

Blob shadows are a performance-light method to create shadows... used successfully in GooBall (and many other games), now they're easy to uses Unity.

To put them into a game, drag in the Standard Assets/Blob-Shadow/blob shadow projector prefab and parent it to an object of yours. Tweak and tune for best results.

Feature #9: New Scripts

We added several useful new script behaviors. Three to control cameras (or whatever you attach them to): MouseOrbit, SmoothFollow, SmoothLookAt.

Plus a really cool one which allows to drag any object that has a Rigidbody (any object which is physical) with the mouse. Make an instant playground of any scene by adding this to your camera (as usually, just select the camera and use Component->Camera Control->Mouse Look).

Read an explanation on how scripts can communicate with each other here.

Feature #10: Scripting Improvements

Better and more accessible scripting reference and broader coverage of scripting features, and many fresh examples, including examples of the new editor extensibility.

Better default values for scripts makes it possible to create complex scripts that just work out-of-the-box. Arrays and custom classes can now be shown correctly in the editor, so working with these is a lot easier now.

Smaller features in Unity 1.2

As all our updates, Unity 1.2 contains a lot of features, optimizations and fixes. The more notable are:

  • Animations are now clipped by the timeline, which makes it easier to create looping animations.
  • Animations can now be set to either loop, ping pong or clamp.
  • Gizmos are now drawn for the entire hierarchy below the selection.
  • Meshes can now import vertex colors.
  • Shaders can now define default textures.
  • Added Object.DestroyImmediate() function, which should be used when writing editor code.
  • Arrays are now shown in the inspector.
  • Classes not derived from MonoBehaviour or Scriptable object can now be referenced and shown in the inspector (you need to use the [System.Serializable] attribute on the class you want to serialize).
  • Improved class support in JavaScript.
  • Added attribute support for JavaScript using @attribute.
  • Application can be set to run in the background in Edit->Project Settings->Player or via scripting with Application.runInBackground.
  • Graphics performance optimizations.

Bugfixes in Unity 1.2

  • Render Textures now work correctly on Windows.
  • Fixed a crashbug occuring when building a player.
  • Fixed a bug where the player wouldn't run exactly like the editor, because the default Physics Material wasn't setup correctly.
  • Fixed shader fallback of the Alpha/Diffuse shader on old graphics cards.
  • Added several Physics Materials to the standard assets.
  • PlayerPrefs class now works on Windows.
  • Fixed 2 crashbugs in the Windows standalone player.
  • The Windows standalone player can now be placed in folders containing non-ascii characters.
  • Fixed crashbug occuring when assigning textures to a mesh.
  • Dragging the camera in orthographic view works correctly now.
  • Fixed a bug where textures would appear as missing.
  • Fixed a bug where C# compile errors wouldn't open the script correctly.
  • The Player can now run on case sensitive file systems.
  • It is now possible to resize the Open Project wizard.
  • Fixed several JavaScript parsing issues related to arrays, enums, the ?: operator, using new with structs when no constructor exists.
  • Fixed crashbug occuring when modifying a material property from scripts.
  • Fixed documentation for Random.Range() (off by one ;)
  • MouseEvents (eg. OnMouseDown) now work with stacked cameras.
  • Aspect ratio dropdown in the game view handles non-fullsize cameras better.
  • Ogg Vorbis playback now works on Windows.
  • Kinematic rigidbodies now send trigger messages.
  • Fixed a bug in the Instantiate function occuring when using direct references to script instances.
  • Fixed a mono related bug that prevented unity or unity players from starting up on some machines.
  • GameObject.SampleAnimation now samples animation clips on hierarchies.
  • Fixed Projector to work correctly with scaled meshes.
  • Projector now has a gizmo.
  • Reset for scripted components now works correctly.
  • Fixed particle rendering crashbug.
  • Fixed text rendering bug.
  • Fixed Object.Destroy() to always be delayed in order to avoid invalid state in callbacks.
  • Fixed rendering bug on some machines that made all objects disappear.
  • Fixed cases when texture inspector would reject dragged textures.
  • Cleaned up standard assets.

Upgrading Projects

After uprading Unity you may want to also upgrade your projects (to gain access to all the new features).

Open your old project and then import the Standard Assets and Pro Standard Assets packages (the second only if you are using Unit Pro). This will replace all the Standard Assets files in your project, so if you modified any of them you must take a backup first to avoid losing your changes.

Physics Changes

We've upgraded to a new version of Ageia's physX since Unity 1.1.1, which can cause changes in physics simulations. Read this post for tips on how to change your game if this causes problems.

Boo Changes

If you use Boo as a scripting language, there is a thing you have to be aware of. A bug previous to Unity 1.2 made protected variables be shown in the inspector. We fixed this, so they are not anymore. By default Boo creates protected variables, so previously they showed up in the inspector. If you want them to continue being shown in the inspector, you now need to mark them as public in Boo.

It is strongly recommended to fix your scripts before opening Unity 1.2, in order to not lose data in your scenes or prefabs (the loss of data happens when loading the project).

Unity 1.2.1

Bugfixes

  • Mouse input now works even if USB overdrive is enabled or a Wacom tablet is being used.
  • The bumped specular glass refraction shader now falls back correctly where pixel shaders are not supported.
  • Fixed a bug in plugin loading on Windows.
  • Right mouse button is now button 1.
  • Fixed a JavaScript compiler error when declaring structs inside of a coroutines.
  • Fixed a crashbug when adding a rigidbody to a plane.
  • Fixed a crashbug when using public multi dimensional arrays in scripts.
  • Fixed a crashbug when using a huge amount of coroutines at the same time.
  • Fixed a memory corruption bug when importing textures with border mip map enabled. This sometimes made Unity crash or give errors when creating a new project.

Unity 1.2.2

Unity 1.2.2 adds a lot of gunpowder to the game-developer's arsenal, while still delivering solidly on the basic premise: making game development easy and efficient.

Unity 1.2.2

Universal Binary Games

Unity 1.2.2 produces games that work on Apple's sweet new Intel Macs (as well as Apple's sweet old PowerPC macs.)

This goes for all deployment targets: standalone, the Unity Web Plugin, and Dashboard Widgets.

Great Windows Support

Games delivered to the Windows platform now perform better, support hardware better, and offer a screen-resolution interface which is as good as that on the Mac. The built game looks really clean on Windows too: just one executable and one data-folder.

Harmony between the spheres.

(Screenshots from Phoenix Final, a game in development by Neil Carter.)

New Features

  • Added screen-selector on Windows.
  • Windows Standalone players now only contain an executable and a Data folder. DLLs have been moved into the Data folder.
  • Added improved resolution handling on Windows.
  • Improved joystick support on Windows.
  • Performance improvements across the board.
  • Screen.SetResolution can now set the refreshRate.

Bugfixes

  • OnCollisionEnter contact normals now always face outwards of the surface hit. In some rare cases they used to be the opposite direction
  • Fixed Skybox handling.
  • Fixed flare rendering for directional lights when the camera has a faraway near-plan.
  • Fixed a problem where Euler-angle rotation values entered in the inspector were garbled.
  • Fixed bug in Selection.GetFiltered handling when requesting all selected game objects.
  • Fixed a problem when stripping debug symbols of the standalone player, if the user didn't have the Apple Developer Tools installed. This is no longer necessary!
  • Fixed crashbug related to rendering selection wireframe and wireframe getting out of sync.
  • Fixed a JavaScript error when comparing dynamically typed objects against null.
  • Fixed rare crashbug when multiple character controllers collided.
  • Fixed rare null-reference exception when using coroutines in C#.
  • Fixed a rare render texture crashbug on ATI 8500 / 9000 / 9200 graphics cards.
  • Fixed rare crashbug when collapsing placement foldout in the material inspector.
  • Fixed rare Windows crashbug related to lighting.
  • Fixed spurious MeshRenderer "missing vertex colors" error.