「Unity/SpriteAtlas/Addressable」の版間の差分
提供: 初心者エンジニアの簡易メモ
(→SpriteAtlasファイルをAddressableへ) |
(→SpriteAtlasファイルをAddressableへ) |
||
行4: | 行4: | ||
==SpriteAtlasファイルをAddressableへ== | ==SpriteAtlasファイルをAddressableへ== | ||
#SpriteAtlasファイルのAddressableにチェックを入れて、Addressableのパスを追加する | #SpriteAtlasファイルのAddressableにチェックを入れて、Addressableのパスを追加する | ||
− | # | + | #SpriteAtlasファイルのIncludeInBuildを外す。(AddressableがRemote設定の場合のみ) |
Addressableのパス例 | Addressableのパス例 |
2024年11月12日 (火) 10:28時点における版
SpriteAtlasファイルの設定
AllowRotationとTightPackingのチェックを外す。
SpriteAtlasファイルをAddressableへ
- SpriteAtlasファイルのAddressableにチェックを入れて、Addressableのパスを追加する
- SpriteAtlasファイルのIncludeInBuildを外す。(AddressableがRemote設定の場合のみ)
Addressableのパス例
Assets/SpriteAtlas/IconSpriteAtlas.spriteatlas
画像名例
favorite_18px
サンプルコード
using System.Collections; using UnityEngine; using UnityEngine.AddressableAssets; using UnityEngine.ResourceManagement.AsyncOperations; using UnityEngine.U2D; using UnityEngine.UI; public class SpriteAtlasScene : MonoBehaviour { AsyncOperationHandle<SpriteAtlas> handle; [SerializeField] Image image; IEnumerator Start() { yield return StartCoroutine(LoadSpriteAtlasIcon()); yield return StartCoroutine(BindSprite()); } IEnumerator LoadSpriteAtlasIcon() { handle = Addressables.LoadAssetAsync<SpriteAtlas>("Assets/SpriteAtlas/IconSpriteAtlas.spriteatlas"); //await handle.Task; yield return handle; if (handle.Status == AsyncOperationStatus.Succeeded) { Debug.Log("success"); // atlasAction.Invoke(handle.Result); } } IEnumerator BindSprite() { SpriteAtlas spriteAtlas = handle.Result; Debug.Log("spriteAtlas.name=" + spriteAtlas.name); if (spriteAtlas.name == "IconSpriteAtlas") { Sprite sprite = spriteAtlas.GetSprite("favorite_18px"); image.sprite = sprite; } yield return null; } }