Fix exSoftClip can not clip sprite under non exPlane GameObject
Fix exSprite use raw-texture, when cloning will not create new mesh
Fix exSprite, exSpriteFont rectangle draw not affect by scale and rotate
Fix delete Atlas, Sprite Animation Clip not update DB
Fix delete Element in Atlas update Atlas DB immediately (should only update when Atlas built)
Introduction
ex2D is a highly integrated 2D-sprite-related development extension for Unity. It aims at providing high performance 2D sprite/UI solution inside Unity, with a specific focus on creating tons of cutting-edge sprite animations and other content in complicated Unity scenes, while still maintaining great performance on mobile devices.
ex2D includes several editor class that runs as view tabs inside Unity, to help developers making 2D assets easily. They are Atlas Editor, Font Editor, SpriteAnimation Editor, the upcoming Tile Map Editor and 2D Skinning Editor. All the editors are written by C# script and directly run in Unity.
ex2D follows the Unity working pipeline standard closely. Unlike other 2D plugins in Unity which directly saves 2D resource in Components, we use the ScriptableObject to handle most of the 2D resource (Atlas, Sprite Animation, Bitmap Font, … ). In this way, ex2D generates assets that easily reusable and manageable for content-rich projects. We also design several Components to reference these data when editing the scene and runtime scripting. Following the advanced asset listening technique in ex2D, developers will not need to worry about data out of the date, they will sync automatically.
ex2D is highly optimized for mobile devices, the code is carefully written to prevent heap allocating and produce less draw calls.
Features
Atlas Editor
Pack textures into texture atlas in an editor window inside Unity.
Can manually move, add and remove textures in atlas.
Automatically detect atlas changes and apply to the scene immediately.
Generate atlas asset under the standard of ScriptableObject in Unity.
Sprite Component
Add this component to any GameObject to turn it into a sprite.
You can drag and drop texture file to the Sprite Component. The Sprite Component will detect if the texture is included in any atlas asset and choose the proper asset. If the texture is not in any atlas, it will just use the original texture file.
Scale sprites in game without breaking dynamic batching.
Choose different Anchor position for aligning the sprites in different type of Sprite Animation.
Support different camera direction (XY, XZ, YZ)
Pixel Perfect render support.
Layer system to help Designer and Artist sort out the rendering order of all sprites in the scene.
Automatically adjust the collider size when the sprite size changed.
Sprite Animation Clip Editor
User friendly interface.
Scale and scroll enabled time line editor.
Move, add, remove and insert Frame Element by dragging and dropping them directly.
Adjustable single frame length to make animation creating more versatile.
Support adding animation events directly in the timeline editor.
Preview animation result in the editor.
SpriteAnimation Component
Reference sprite animation in script by clip names.
Provide interface to control animation state ( play, pause, stop )
Support pause/resume animation.
Atlas Font Editor
Support fonts export from BMfont and Hiero.
Multiple fonts can be put together in one big texture atlas to save draw calls.
Fonts can also be put together with other texture sprite to save draw calls.
Manage fonts easily in atlas editor.
SpriteFont Component
Support rendering text from Atlas Font asset and Bitmap Font asset.
Support in game gradient color rendering (you can specify two colors for gradient and change them in runtime).
Support in game outline rendering (outline width and color are adjustable).
Support in game shadow rendering (offset and color are adjustable).
Support multi-line text.
Upcoming Features
Tile Map Editor and Tile Map working pipeline
2D skeleton animation editor
2D Skinning editor
2D GUI editor
Researching
Working pipeline for multiple resolution.
Export the 2D scenes and assets in xml and json file formation.
Load the exported xml/json file in Cocoa2D.
Load the exported xml/json file in Web-Browser(Html5).
We have some features to prevent runtime memory allocation which is very important for iOS development.
Also for draw calls you can scale the sprite easily with ex2D without worrying about mess up the batching.
When jwu is back he can explain those performance improvements in detail.
The draw calls is sort by material. So it use the similar solution which SM2 provided. If your sprite uses the same Atlas Texture and same material, they will draw in one call.
I’m not sure which True-Color setting you specific.
If you mean Original Texture which will imported to Atlas, because the final result of the texture quality is controlled by Atlas, and original texture will not reference and used in the final game, so import them with the highest quality will be the best choice I think.
If you mean the Atlas Texture created by Atlas Editor, I think you can control the quality in the final output result isn’t it ?
I’m using it in places on a project I’m working on. There are memory and performance costs, but if compressed or 16 bit settings are not good enough quality, and the app is still performant, then why not?
Excellent GUI!! And Excellent Plugin!
I loving! The big problem i found using SM2 and ezGUI! They try to do all to you, but this make a big mistake!
And your script is simple and good enought!
I have one question, you talk about GUI, how i can make one button? Do you have any example?!
I think we are not provide any GUI solution yet in this version of ex2D. The GUI is a big part in a game, and people in different place have their own solution and architecture. It is really hard to introduce one GUI system for different project. So ex2D only provide the basic element that user can build their own GUI system based on it.
We do have a plan in developing a GUI library based on the ex2D, but it is not finish yet.
In your case, if you just want a button, you can create a exSprite in the scene, and add CollisionBox/CollisionMesh, and Create a script such as Button.cs add it to your Sprite gameObject. In the Button.cs script, you can write code to catch the Input and handle events.
I just fix the bug today. You can download the latest beta test version in http://www.ex-dev.com/ex2d/beta.html, it is updated to Beta2 RC1. The package should be ex2d_beta2_rc1_with_demo.zip. Have fun
Yes, ex2D assume you give it the right to manage the textures in Atlas. So it will change the import settings and try to use the highest quality and the correct size of them when they added to Atlas.
And i can use a fade? in some Sprites? Like i need one sprite to fade in and fade out all time, i must do that by programing? Or i can do that by iTween? Or something like that?