Uh oh!
There was an error while loading.Please reload this page.
- Notifications
You must be signed in to change notification settings - Fork31
AtlasImage is a graphic component use SpriteAtlas for uGUI. In addition, add useful sprite selector and border editor to the inspector.
License
mob-sakai/AtlasImage
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
A graphic component useSpriteAtlas
for uGUI.
In addition, add usefulsprite picker andborder editor to the inspector.
<<Description |Demo |Installation |Usage |Development Note |Change log >>
Are you still fatigued withSpriteAtlas
andImage
?
- No interface for SpriteAtlas
- Support only
Sprite
. - We pack sprites for drawing call optimization, but there is no interface.
- Support only
- Confusing sprite picker
- You can select sprites using object picker.
- Opject picker displaysall sprites in the project...
- Do you know which sprite is included in atlas?
- Troublesome border setting
- You can edit sprite border using sprite editor.
- It is troublesome to select a sprite, open a sprite editor, and edit the border.
AtlasImage
provides useful feature to useSpriteAtlas
for UI!
atlasImage.spriteAtlas=Resources.Load("A SpriteAtlas name")asSpriteAtlas;atlasImage.spriteName="A sprite name in the SpriteAtlas";
- Unity 2017.1 or later
This package is available onOpenUPM.
You can install it viaopenupm-cli.
openupm add com.coffee.atlas-image
Find the manifest.json file in the Packages folder of your project and add a line todependencies
field.
To update the package, change suffix#{version}
to the target version.
- e.g.
"com.coffee.atlas-image": "https://github.com/mob-sakai/AtlasImage.git#1.0.0",
Or, useUpmGitExtension to install and update the package.
- Download a source code zip file fromReleases page
- Extract it
- Import it into the following directory in your Unity project
Packages
(It works as an embedded package. For Unity 2018.1 or later)Assets
(Legacy way. For Unity 2017.1 or later)
- Enable SpriteAtlas. Go to
Edit > Project Settings > Editor
, and change the sprite packing mode from Disabled to either:- Enabled for Builds, when you want to use packing for builds only and not when in Play mode.
- Always Enabled when you want the packed Sprite to resolve its texture from the Sprite Atlas during Play mode, but resolve its texture from the original Texture during Edit mode.
- Add
AtlasImage
component instead ofImage
component fromAdd Component
in inspector. - Select the
SpriteAtlas
by dropdown manu, and select the sprite with object piker. - Enjoy!
- Pack atlas on open select sprite window.
staticvoidPackAtlas(SpriteAtlasatlas){System.Type.GetType("UnityEditor.U2D.SpriteAtlasUtility, UnityEditor").GetMethod("PackAtlases",BindingFlags.NonPublic|BindingFlags.Static).Invoke(null,newobject[]{new[]{atlas},EditorUserBuildSettings.activeBuildTarget});}
- Add label
<atlas-guid>
to sprites in atlas.
staticstringSetAtlasLabelToSprites(SpriteAtlasatlas,booladd){// GUID for the atlas.string[]atlasLabel={AssetDatabase.AssetPathToGUID(AssetDatabase.GetAssetPath(atlas))};// Packed sprites in atlas.SerializedPropertyspPackedSprites=newSerializedObject(atlas).FindProperty("m_PackedSprites");Sprite[]sprites=Enumerable.Range(0,spPackedSprites.arraySize).Select(index=>spPackedSprites.GetArrayElementAtIndex(index).objectReferenceValue).OfType<Sprite>().ToArray();// Add/remove label to sprites.foreach(varsinsprites){string[]newLabels=add?AssetDatabase.GetLabels(s).Union(atlasLabel).ToArray():AssetDatabase.GetLabels(s).Except(atlasLabel).ToArray();AssetDatabase.SetLabels(s,newLabels);}returnatlasLabel[0];}
- Open the object picker with label. It filter the sprites to display.
EditorGUIUtility.ShowObjectPicker<Sprite>(atlas.GetSprite(spriteName),false,"l:"+atlasLabel,controlID);
- On closed the object picker, remove label from sprites in atlas.
Issues are very valuable to this project.
- Ideas are a valuable source of contributions others can make
- Problems show where this project is lacking
- With a question you show where contributors can improve the user experience
Pull requests are, a great way to get your ideas into this repository.
Seesandbox/README.md.
This is an open source project that I am developing in my spare time.
If you like it, please support me.
With your support, I can spend more time on development. :)
- MIT
- GitHub page :https://github.com/mob-sakai/AtlasImage
- Releases :https://github.com/mob-sakai/AtlasImage/releases
- Issue tracker :https://github.com/mob-sakai/AtlasImage/issues
- Change log :https://github.com/mob-sakai/AtlasImage/blob/main/CHANGELOG.md
About
AtlasImage is a graphic component use SpriteAtlas for uGUI. In addition, add useful sprite selector and border editor to the inspector.
Topics
Resources
License
Uh oh!
There was an error while loading.Please reload this page.
Stars
Watchers
Forks
Sponsor this project
Uh oh!
There was an error while loading.Please reload this page.
Packages0
Uh oh!
There was an error while loading.Please reload this page.
Contributors2
Uh oh!
There was an error while loading.Please reload this page.