The day has come: there are a lot of people waiting for Unity 4.3 which will support native 2D programming.
Before 4.3, it was possible to create 2D games by using planes and quads to simulate sprites, but with the new 4.3 version you will be able to use sprites and Box2D physics!
Here is the list of 2D features taken from the official page, and expect a lot of tutorials during next days!
Integrated Box2D physics engine and a set of 2D physics components
* Rigid-body component (RigidBody2D) supporting static/kinematic/dynamic body, mass, linear/angular velocities, drag and auto-sleeping, and fixed-angle constraint.
* Circle collider (CircleCollider2D) supporting a centroid and radius.
* Box collider (BoxCollider2D) supporting a centroid and a size.
* Polygon collider (PolygonCollider2D) supporting an arbitrary set of polygons. It can be initialized to the shape of a sprite by dragging the sprite onto the component.
* Distance joint (DistanceJoint2D) supporting a hard maximum distance between rigid-bodies.
* Hinge joint (HingeJoint2D) supporting linear and angular limits and motor drive.
* Slider joint (SliderJoint2D) supporting an axis constraint, linear limits and motor drive.
* Spring joint (SpringJoint2D) supporting a soft (spring) distance between rigid-bodies.
* Added a new physics material PhysicsMaterial2D to share friction and bounciness including default material support.
* Added a 2D physics manager to contain scene settings such as gravity etc.
* Added spatial queries in Physics2D scripting class for line and ray-casting and geometry overlap checks.
* Added both trigger and collision callbacks for 2D colliders including collision points and normal.
* Added 2D physics profiling information to the profiler.
* Editor: Hold down shift to quickly modify 2D colliders.
Added a new asset type: Sprite
* Sprite is defined by a Texture2D, rectangle and a pivot point.
* Sprite has an internal mesh generated based on pixel alpha values, PRO only feature.
* Sprite supports vertex snapping (V)
* Added Sprite under the “GameObject/Create Other/” menu.
Sprite Mode added to TextureImporter
* Single Sprite option will generate one Sprite using the entire texture.
* Pixels to Units defines the mesh size of the Sprite to 1 / value.
* Pivot property defines sprites center point.
* Manual option allows custom Sprite definitions.
* Sprite Editor button opens new window for editing sprites: Add / Delete sprites manually; Automatic and Grid based slicing; Change sprite names.
* Extrude Edges property added to Advanced mode. It can be used to extrude the internal sprite mesh edges if needed for custom texture-space effects.
* Mesh Type property added to Advanced mode. It can be used to change the type of mesh generated: Full Rect or Tight (PRO only feature).
Added a new renderer component: SpriteRenderer
* Renders one Sprite.
* Does not requires a material to have _MainTex texture set.
* Uses Material Property Blocks to patch _MainTex with the correct (original or atlased) texture for the active Sprite.
* Supports dynamic batching with non-uniform scaling.
* Color property sets the vertex color.
* If no material is specified, Sprites/Default material (alpha-blended) is used.
Added 2D mode button to scene view
* Scene view axis widget is hidden on 2D mode
* Scene view locks to the XY plane.
* Move tool changes to a dedicated 2D tool with familiar functionality.
* Move tool have special Keyboard modifiers
* Picking is now alpha-based.
* Dragging a sprite to the scene will create a new GameObject with a SpriteRenderer.
* Dragging multiple sprites to scene will create a new GameObject with a SpriteRenderer and sprite animation.
Sprite Packing (Atlasing), PRO only feature
* Atlas is defined by changing the PackingTag property in texture importer.
* Packing is based on the generated mesh.
* Packing will respect texture import settings and will only pack textures together if format, usage mode, color mode, compression quality, filter mode and mip-map settings match.
* Window/Sprite Packer menu option opens a new window for inspecting the automatically generated sprite atlases.
* Decision of which sprites to place into which atlases can be fully customized by implementing a custom sprite packer policy (UnityEditor.Sprites.IPackerPolicy).
* Packing is completely transparent to the user, works in Play mode and is compatible with asset bundles.