Unity 1.6
A newer version of Unity has been released since Unity 1.6. Check out the current release notes to find out what's really new.
|
Feature #1: Unity-to-browser communicationWe've added a number of features that open up a whole universe of integration possibilities. This enables things simple as opening web-pages, through reading forms and cookies, or as advanced as creating full AJAX web-sites. Learn how to do this |
|
Feature #2: Streaming of .unityweb files.unityweb files can now be streamed and loaded with the WWW class. This allows you to create Unity based loader scenes with interactive content while downloading the actual content. Learn how to do this |
|
Feature #3: Windows Vista supportWith Windows Vista hitting the stands any day now, of course we made sure that your games will run on it. Unity supports creating both web and standalone games for Windows Vista. |
|
Feature #4: Searchable documentationThe scripting documentation now is searchable. The documentations has also seen a lot of expansion, and it's layout has been imporoved. Also we've linked up the component and scripting reference, for easy cross refence of functionality and scripting API. Finally, the UniTron text editor, which is included with Unity, features simple auto-completion and can look up the documentation for anything that's in your script: select a word and press CMD-' to jump to the documentation for the selected function or class. |
|
Feature #5: Video tutorialsUnity is essentially a visual tool. Therefore we've made a number of educational videos for Unity. Available in web format and for your Video iPod. View videos |
|
Feature #6: Audio effectsWe added support to set the pitch of audio sources. When you move your audio sources around, they can be affected by the doppler effect. Perfect for racing games and other genres that call for vivid audio. |
|
Feature #7: Collaboration improvedThe Import Package and Export Package functionlity has been improved. Unity can now include all dependencies of the exported assets automatically. Assets to be imported and exported are shown in a table view. You can exclude individual items, and when importing you are shown what actually changed. |
|
Feature #8: Raycasts give precise info about vertexes hitThe RaycastHit structure that is returned by the Physics.Raycast() functions, now contains a triangle index and UV coordinate when it hits a mesh. Using this, it's easy to paint textures with a mouse. The properties are called RaycastHit.triangleIndex and RaycastHit.textureCoord. Docs and script example Procedural Content project |
|
Feature #9: Full .NET DLL supportNow Unity supports .NET DLL's. You can create them with Visual Studio or the Mono compilation tools, then drop them into your Unity project to have them included in your game builds. |
All-Round Improvements
We've been hard at work acting on the needs of our many users. This is a list of the main changes that have gone into Unity since Unity 1.5.1.
Graphics, ease of use, minor features
- Any texture size is now supported (lifting the requirement to have texture dimensions of 2, 4, 8, 16, 32, 64, 128, 256, etc.) This both means than any image can be used as a texture, and that it's much easier to do pixel-perfect game GUIs. The WWW class now fetches images without padding them.
- Cinema 4D 10 is now fully supported.
- Quality Settings are fully switchable at run time. Scripts can access a QualitySettings class to change current quality level.
- The separate Web Player quality level was removed; and default standalone and web-player quality levels are set up in Quality Settings as well.
- A different icon now seperates imported and created prefabs. It's useful to see what's what since they work differently (imported prefabs can't be modified).
- The Unity Web Player can now hide the cursor while it is over the area of the plugin. Use Screen.showCursor = false; to enable this behaviour.
- The player window on OS X starts centered on the screen instead of on the top left corner.
- Application.loadedLevel will now refer to the correct "Build Game" dialog index number when testing scenes in the editor.
- The Mesh import settings dialog is now resizable, to make splitting animations into many parts easier.
- The name of a prefab is now always overridden and will not change when the prefab name changes.
- The name of the physics material will now stay the same when instantiated through Collider.material.
- Scripts can now be dragged into the empty area of the inspector to add the script to the selected game object.
- Tabbing through the inspector is more consistent now.
- Inspector properties are no longer edited by a mouse click that activates Unity. Thus one no longer can accidentally change values like this.
- Moved Quality Settings menu item into Project Settings submenu because they are project-wide settings.
New scripting functionality:
- Added Resources.Load() and Resources.LoadAll() functions. You can now place assets in a folder named "Resources" inside the project folder. Assets inside this folder (and only these) can be loaded at runtime, by referencing them by name or path.
- Added Input.GetButtonUp(), Input.GetKeyUp(), and Input.GetMouseButtonUp() functions.
- Added Application.CancelQuit() to stop or delay a standalone player from quitting. This function is useful to call from inside an OnApplicationQuit() handler. It is perfect for showing a splash screen just before the user leaves the application.
- Added transform.forward, transform.right, transform.up convenience properties.
- Added JavaScript parseInt and parseFloat functions.
- Added GetScreenRect() for GUI elements (GUITexture and GUIText).
- Added Graphics.deviceName, Graphics.deviceVendor and Graphics.deviceVersion.
- Added Screen.currentResolution property.
- Added a WWW.progress property and WWW.LoadUnityWeb() function to the WWW class.
- Added RaycastHit.triangleIndex and RaycastHit.textureCoord.
- The constructor of GameObject now takes an optional list of components that should be added to the game object automatically.
- Added Texture2D.SetPixels() to set all pixels in a texture in one go, vastly improving performance.
- Added Texture.wrapMode property.
- Added Mathf.Log() and Mathf.Exp() functions.
- Texture2D.SetPixel() now automatically clamps / repeats out of bounds pixels automatically. This makes using RaycastHit.textureCoord a lot easier.
- The transform and rigidbody accessors in RaycastHit now return null if nothing was hit (instead of throwing an exception).
- Collision.collider property now is always set to a collider even if a Rigidbody was hit. This is more intuitive than the old approach of returning null if a Rigidbody took place in the collision.
- SendMessage() functions can automatically convert between float and int.
- Vector3.back, Vector3.left and Vector3.down properties have been deprecated. Use -Vector3.forward, -Vector3.right and -Vector3.up instead.
Bug fixes
- GUI Textures now always display pixel correct.
- Pixel point lights now attenuate towards completely black at their maximum range (instead of a dark gray).
- Fixed jitter when using Rigidbody interpolation.
- Fixed bug in animation splitting when using loop-frames.
- OnCollisionExit() will now be called even if OnCollisionEnter is not defined.
- new WWW (url) can now be accessed from C#.
- Double clicking on a texture in the material inspector will now open the texture in Photoshop (or whichever application you have selected as the texture editor application).
- When assigning references to objects in the inspector using the popup-menu, classes that inherit from MonoBehaviour will now be checked for their exact type and only listed if the type matches exactly.
- When rotating a parent transform, with transform children that have a kinematic rigidbody, the position change from the rotation will now be applied correctly. Previously the world space position of the transform would not change.
- The Unity Web Player's context menu now always works on Firefox running on OS X.
- Fixed some .NET classes failing to load in standalone Windows players (ConfigurationException: Cannot find ...\Data\etc\mono\1.0\machine.config).
- Windows standalone player will no longer switch to rotated full screen resolution.
- Invalid characters now get removed in Product Name and Company Name in Edit->Project Settings->Player. Certain characters would lead to the built player application not being able to launch.
- Alpha of main color in all shaders is now 100% by default.
- The InputManager's "Should quit on CMD-Q" checkbox has been removed. Application.CancelQuit() can do the job better now.
- Calling ToString() on an enum is no longer disabled in the Unity Web Player.
- Fixed Unity Web Player scrolling flicker in Safari.
- Fixed an issue where single quotes in script filenames named led failed compilations.
- Fixed a bug where resizing arrays of custom structures sometimes failed.
- Fixed crashbug when the mesh particle emitter has lost the reference to the mesh and emit mode is set to Systematic.
- Fixed cubemap inspector not displaying face images correctly.
- Fixed misleading label for 1/4 and 1/8 texture resolutions in Quality Settings (used to show 1/8 and 1/16).
- Fixed issue in the automatic triangulation of quads when importing models.
- Fixed bug in property inspector scrolling to the beginning when right-click dragging values fast.
- Fixed a crashbug that rarely and randomly happened when switching between inspectors.
- Fixed Flare fade checkbox to actually work.
- Fixed crash occurring when setting the tag of a behaviour inside of the constructor.
- Worked around Maya FBX exporter bug, where Maya batchmode would crash when using IK Constraints on some characters.
- Prefab changes are now propagated when using Application.LoadLevel() from inside of the editor.
- When going to fullscreen in the web player, the resolution and refresh rate is now clamped to the desktop resolution. This helps making sure that the Unity Web Player never switches to a resolution the monitor does not support.
Driver workarounds
- Fullscreen mode for S3 Savage cards with old drivers on Windows used to be disabled. Now entering directly into fullscreen from standalone is supported.
- Worked around a crash on older FireGL drivers on Windows (this is the same issue as with old Radeon cards: vertex programs get parsed wrongly)
- Worked around crashes and wrong rendering on Radeon 7x00 cards under Windows (disabled VBOs).
Unity 1.6.1
|
Feature #1: Streaming Audio
Compressed Ogg Vorbis audio can now be streamed directly in through the WWW class. This is extremely useful for ensuring that you Unity Web files load quickly, and only stream in music later. It also means that even a small web-game can include a long playlist of music.
Script example |
|
Feature #2: Mouse lockingUnity now allows you to lock the mouse & hide the cursor. In the web player the user has to click on the content first and when pressing escape the mouse cursor is always unlocked. This allows you to make better windowed FPS shooters or other content that uses mouse delta for input. Script example |
Upgrading Projects
When 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 Unity Pro).
All-Round Improvements
Yet again we've collected and categorized hundreds of your suggestions and bug reports, fixing each and every one we could.
Improvements
- The Collada .dae importer has been greatly improved. Collada files can now have two separate UV sets, and vertex colors also import correctly now.
- A #pragma strict keyword can now be used to disable dynamic ("duck") typing in JavaScript. This is useful when you want to not accidentally make use dynamically typed function calls, thus ensuring that your code runs at maximum speed.
- Support for Internet Explorer plugin activation. Web content on IE ignores input until it's activated, but the plugin can now be activated by using external .js files to load the plugin. See the web player manual section for more information.
- In the web player, the WWW class now downloads through the browser's API, allowing downloads to be cached by the browser. This improves streaming for the web plugin a lot. This means that WWW downloads are no longer able to stall until the download is complete (the API of common browsers does not allow this). We deprecated all functions which will stall a download, and are now giving an error when a download is being used before complete. Instead of stalling the download simply use yield WWW;. Web players published with Unity 1.6.0 or earlier will of course continue to work.
- The automatically generated web player html has been simplified. The documentation on the Unity Web Player HTML and browser communication has been rewritten.
- Script examples in the documentation are now syntax-highlighted.
- Added scripting function Material.GetTag(), to detect which subshader is being used in a shader.
- GUI elements and colliders are now ignored for OnMouseDown(), OnMouseEnter(), etc., functions when they are in the Ignore Raycast layer.
- Unity's Game View support for 16:9 aspect ratio was added.
- Reflective and Refractive Water shaders now render faster on old cards (specifically Radeon 7x00, Intel 8xx, and GeForce 2/3/4). For better performance the unnecessary camera is now disabled when the fallback is active (to get this, you need to re-import Standard and Pro Standard Assets packages into your projects).
- Width and height is now passed into postprocess build scripts. The current directory in the postprocess build player script is now always set to the project folder.
- Doppler is turned off by default now. To enable it, go to the Edit -> Project Settings -> Audio and set Doppler Factor to a non-zero value in order to activate it.
Known issues
- On some computers, the Unity editor does not launch. Unity will bounce one time in the dock, then quit. This is a bug in OS X 10.4.8 that triggers on some Intel-based Macs. The bug has been fixed in upcoming Mac OS X 10.4.9 update. Until it's released the problem can be solved by reinstalling the system or booting from another hard drive. The Player and Web Player are not affected by this.
- The Unity Web Player running in Firefox on Windows computers sometimes runs slower than it does in Internet Explorer. This is a bug in the Firefox "TalkBack" feature (FireFox's automatic bug reporting system). It specifically causes the context switches in OpenGL to take a needlessly long amount of time. You can make the Unity Web Player run fast again by simply turning off TalkBack in Firefox (Tools -> Add-ons menu). The performance issue is not very noticable with simple players, but if you use Render Textures or Image effects (for example reflective surfaces, blur, glow) the performance decrease can be quite drastic. The same issue also applies to other browser plugins (as for example Adobe Shockwave).
Bug fixes
- GetComponents() now gives an error instead of crashing when called from an object's constructor.
- Setting a reference to a component from a builtin components works again.
- Various issues with audio playback with pitch & doppler have been fixed.
- "Maximize on Play" on Unity's Game View now sets Screen.width & Screen.height before play begins.
- Made Matrix4x4.SetOrtho() to work correctly.
- Fixed a problem where skinned meshes having just one bone would sometimes incorrectly not be recognized as being skinned.
- Application.dataPath now works correctly in the Windows web player.
- Creating new assets from the Assets menu would fail when any project settings were selected.
- If a standalone Windows player crashes, the crash-report is saved into a separate folder next to game executable.
- Fixed an issue where particles would sometimes have huge initial velocities when a particle system was created in the editor.
- Fixed an issue where particles with very high energy in some cases aren't emitted.
- Fixed a graphics issue where flickering could occur when using the ColorMaterial keyword in a shader.
- Fixed rendering corruption when Halos are used on some Windows graphics card drivers.
- Fixed issue where script compilation would stall when encountering more than 32 errors or warnings.
- Fixed a bug where compilation would sometimes halt when importing a .unitypackage while having many compile errors.
- Fixed two regressions in the JavaScript compiler related to scoping of identical variable names.
- Fixed an issue in .obj file importing where UV coordinates would sometimes get lost.
- When making a game object DontDestroyOnLoad() without making the parent game object DontDestroyOnLoad. Instead of crashing, Unity will now warn about this since it's most likely not what is wanted.
- PlayerPrefs are now cleared when loading a new web player instance, but they are retained when using WWW.LoadUnityWeb();. This can be used to persist data between level loads when streaming .unityweb files.
- Fixed memory leak when stopping audio sources which use Ogg Vorbis.
- Fixed bug where Unity would behave inconsistently when a prefab was deleted in the Finder, and a new one created shortly afterwards.
- Fixed mouse cursor jittering when using right mouse drag in the editor.
- Fixed a problem where textures loaded via the WWW interface sometimes would not show.
- Fixed Windows Web Player crash on Firefox 1.0.x.
- Fixed Web Player installation and update failing on Windows in some rare cases.
- Fixed crash when importing non-power of two textures with some (large) texture sizes.
- Fixed bug with Export Package causing rare crashes when exporting entire scenes.
- Fixed a crash when disabling a camera from inside OnPreRender() or OnPostRender().
- Fixed a crash when ParticleEmitter.Emit() is called with a negative value.
- Fixed a crash when assigning null texture on a GUI Texture from script.
- Fixed an occasional crash when accessing GUIText.pixelOffset, material.mainTextureOffset and material.mainTextureScale on Windows and Intel-based Macs.
- Fixed a crash when using multiple image effects on a camera rendering into a Render Texture.
- Fixed a crash when max emission of a particle emitter in one shot mode was set to infinity.
- Removed spurious error "!CompareApproximately" that would sometimes show up when using interpolation on a rigidbody.
Driver workarounds
- Render textures now work on Intel graphics cards on Windows.
- Vertex programs are now enabled on GeForce4 4200 Go cards.
- Worked around guiText.material.color not always updating on Mac OS X, caused by a bug in Apple's Radeon X1x00 drivers.
Unity 1.6.2
Unity 1.6.2 was released in response to Apple's buggy Mac OS X 10.4.9 update, which in some cases made Unity stop working on Intel Macs after the update had been applied. But we still went through your bug reports and fixed most of them.
All-Round Improvements
Yet again we've collected and categorized hundreds of your suggestions and bug reports, fixing each and every one we could.
Bug fixes
- Fixed an issue where Unity wouldn't launch on Intel-based Mac OS X 10.4.9 computers due to bad prebindings caused by the 10.4.9 updater.
- Fixed a bug where more than one image effect on a camera targeting into another render texture would crash.
- Fixed random crashbug in Skinned Mesh Filter when animate normals is disabled.
- Fixed issue with Dashboard Widgets crashing when they are being reloaded using CMD-R.
- Fixed Internet Explorer activation in web player when using external JavaScript.
- Fixed loading issue on Windows when the executable is contained in a folder using Unicode characters.
- Fixed web player hang or crash on Windows when navigating very fast between pages.
- Fixed sound volume sometimes not updating correctly when changing listener volume.
- Fixed front and back audio channels being reversed on a 5+ speaker setup.
- Fixed bug where scale was sometimes not applied correctly when using animation clips.
- Layer Mask on Character Controller is now setup correctly.
Driver workarounds
- Fixed crash on Intel 9xx cards on Windows when render textures and image effects are used.
- Fixed rare crash on graphics cards that don't support DXT texture compression.
- Fixed incorrect uploading of DXT compressed cubemaps on some drivers.
- Fixed render texture crash on some Vista OpenGL drivers.
- Disabled render textures on old ATI FireGL drivers (they would often crash).
- Disabled multi-threaded web player rendering on old NVIDIA drivers and some SiS cards (they would crash sometimes).