Unity/Addressable/基本のソースを表示
←
Unity/Addressable/基本
ナビゲーションに移動
検索に移動
あなたには「このページの編集」を行う権限がありません。理由は以下の通りです:
この操作は、次のグループに属する利用者のみが実行できます:
登録利用者
。
このページのソースの閲覧やコピーができます。
==Addressableをscriptで実行== [[Unity/Editor/Addressableビルド]] [ショートカット] ==Addressableとは== 外部サーバーで使えるResources ==インストール== #Unityメインメニュー/Window/Package Manager/Unity Registryが選択"addressable"を検索 #Addressablesをinstall ==Addressableの作り方== #例として、プレハブを作るのでAssetsの下にResourcesフォルダがなければ作る。 #適当にプレハブをAssets/Resourcesの下につくる。(例:ButtonGroup) #inspectorにaddressableのチェックがあるので、チェックを付ける #チェックをつけると、addressableのpathが生成される(例:ButtonGroup) #Resources_movedに勝手に移動される。もしくは、作られたファイルをResources以外のdirに入れる。 #以下SampleScene.csをシーンに連携する <pre> using System.Collections; using UnityEngine; using UnityEngine.AddressableAssets; using UnityEngine.ResourceManagement.AsyncOperations; using UnityEngine.UI; public class SampleScene : MonoBehaviour { [SerializeField] Button clearButton; [SerializeField] Button loadButton; [SerializeField] Button unloadButton; [SerializeField] GameObject canvas; GameObject instance; void Start() { clearButton.onClick.AddListener(() => { Caching.ClearCache(); }); loadButton.onClick.AddListener(() => { if (instance == null) { StartCoroutine(Load()); } }); unloadButton.onClick.AddListener(() => { Destroy(instance); Addressables.ReleaseInstance(instance); // 破棄 }); } IEnumerator Load() { // プレハブ:GameObject、画像:Image、スプライト:Sprite var handle = Addressables.LoadAssetAsync<GameObject>("ButtonGroup"); yield return handle; if (handle.Status == AsyncOperationStatus.Succeeded) { instance = Instantiate(handle.Result, canvas.transform); } } } </pre> Loadボタンを押すと、シーンのCanvasの下に、Addressableで作った、プレハブが表示される。 ==="Exception encountered in operation CompletedOperation, status=Failed, result= : Exception of type"エラーが出るとき=== Addressable化したもののパスが合ってるか確認、PlayModeScript(後述)が、サーバーから取得するようになってないか。 ==設定確認== #Unityメインメニュー/Window/AssetManagement/Addressable/Groups/Profile/ManageProfiles <pre> BuildTarget:[UnityEditor.EditorUserBuildSettings.activeBuildTarget] LocalBuildPath:[UnityEngine.AddressableAssets.Addressables.BuildPath]/[BuildTarget] LocalLoadPath:{UnityEngine.AddressableAssets.Addressables.RuntimePath}/[BuildTarget] RemoteBuildPath:ServerData/[BuildTarget] RemoteLoadPath:http://[PrivateIpAddress]:[HostingServicePort]/[BuildTarget] </pre> ===設定変更=== 設定変更したい場合は、 #Unityメインメニュー/Window/Addressable/Groups/ManageProfiles/Create/NewProfileを選択し、 #各項目を入力していく ==プレイモード選択== #Unityメインメニュー/Window/Addressable/Groups/PlayModeScriptを選択 *Use Asset Database (fastest):Unity内のアセットから *Simulate Groups (Advanced):依存関係を分析して取得 *Use Existing Build(requires built groups):パックプレイモードで、サーバーから取得 ==Addressableでビルドしたものを、Addressableを取得== #上記のPlayModeScriptを"Use Existing Build"へ #Addressableをビルドする(Unityメインメニュー/Window/Asset Management/Addressables/Groups/Build/New Build/Default Build Script #プレビュー実行 ちなみにBuild時に以下のようなファイルが出来る。 *Library/com.unity.addressables/aa/WebGL/AddressablesLink *Library/com.unity.addressables/aa/WebGL/catalog.json *Library/com.unity.addressables/aa/WebGL/settings.json *ServerData/WebGL/defaultlocalgroup_assets_all_69745f2bc65176429eb31f083306322b.bundle ==Addressableの削除== #Unityメインメニュー/Window/Asset Management/Addressables/Groupsを選択 #以下3種類削除操作がある * Build/CleanBuild/All → 以下2つのLibrary/com.unity.addressablesと、Library/BuildCacheが、削除される * Build/CleanBuild/"Content Builders" → Library/com.unity.addressables が、削除される * Build/CleanBuild/"Build Pipeline Cache" → Library/BuildCache が、削除される ==Addressableの再生成== #Unityメインメニュー/Window/Asset Management/Addressables/Groups #Build/New Build/Default Build Script プロジェクト以下/ServerData/WebGL/とかにできる <pre> ServerData/WebGL/catalog_v1.0.hash ServerData/WebGL/catalog_v1.0.json ServerData/WebGL/localization-assets-shared_assets_all.bundle ServerData/WebGL/localization-string-tables-chinese(traditional)(zh-tw)_assets_all.bundle ServerData/WebGL/localization-string-tables-english(unitedstates)(en-us)_assets_all.bundle ServerData/WebGL/localization-string-tables-japanese(japan)(ja-jp)_assets_all.bundle Library/BuildCache/ Library/com.unity.addressables/aa/ Library/com.unity.addressables/WebGL/ </pre> ==ビルド時のパスを確認== #Assets/AddressableAssetsData/AssetGroups/Default Local Group #BuildPathとLoadPathに何を設定してるか確認。 *LocalBuildPath:Library/com.unity.addressables/aa/WebGL/WebGL *LocalLoadPath:{UnityEngine.AddressableAssets.Addressables.RuntimePath}/WebGL *RemoteBuildPath:ServerData/WebGL *RemoteLoadPath:ttp://localhost/WebGL ==サーバーにAddressableファイルを読み込んで表示== #Assets/AddressableAssetsData/AssetGroups/Default Local Group #BuildPathにRemoteBuildPathを設定し、 #LoadPathにRemoteLoadPathを設定 #Addressableをビルドし、(Unityメインメニュー/Window/Asset Management/Addressables/Groups/Build/New Build/Default Build Script #ServerData/WebGLにできたファイルを自分のサーバー(例:ttp://localhost/WebGL/~)へ上げる。 #Unityメインメニュー/Window/Addressable/Groups/Profile/ManageProfilesのRemoteLoadPathをttp://localhost/[BuildTarget]から、自分のサーバー(例:ttp://localhost/WebGL/~)のファイルのある場所へ。 #プレイモード(Unityメインメニュー/Window/Addressable/Groups/PlayModeScript)をUse Existing Buildへ #プレビュー表示すると表示される。 ==AddressablesのRemoteLoadPathの変更== #Window/Asset Management/Addressables/Groups #Profile:WebGLを選択 #ManageProfiles #RemoteLoadPathを変更する https://qiita.com/tetr4lab/items/1b26755089820b041b4f ==AddressableでダウンロードしたAssetBundleデータの削除== スクリプトでの削除 Caching.ClearCache(); Addressableでロードしたアプリ内で、実行してもキャッシュは消えなかった。利用中のキャッシュが消えないのかも。 一度アプリを消して、再度キャッシュクリア処理だけ実行したら消えた。 ==AddressableでダウンロードしたAssetBundleデータの保存先== macの場合の保存先 ~/Library/Caches/Unity/[社名]_AddressablesProject/__info ~/Library/Caches/Unity/[社名]_AddressablesProject/e93a4ab8b320d6c828e139bbc64c9600/6311e87ae18bf58221e098afaa7d0f47/__data ~/Library/Caches/Unity/[社名]_AddressablesProject/e93a4ab8b320d6c828e139bbc64c9600/6311e87ae18bf58221e098afaa7d0f47/__info windowsの場合の保存先 ~\AppData\LocalLow\Unity\[CompanyName]_[ProductName] androidの場合の保存先 /storage/emulated/0/Android/data/[PackageName]/files/ 参考:https://yotiky.hatenablog.com/entry/unity_addresableassetsssytem 参考:https://baba-s.hatenablog.com/entry/2020/04/04/091500 ==StreamingAssetsディレクトリについて== Addressableをビルドして、UnityプロジェクトのWebGLをBuildすると、 *Build *TemplateData *index.html と同じ場所に、 *StreamingAssets ができる。 =="Player content must be built before entering play mode with packed data."エラーが出る場合== 詳細エラーメッセージ <pre> Player content must be built before entering play mode with packed data. This can be done from the Addressables window in the Build->Build Player Content menu command. UnityEngine.GUIUtility:ProcessEvent </pre> 一度addressableをビルドする。 ==プロジェクトをビルドしたときのAddressableリンクデータ== プロジェクトビルドファイルの下に、"StreamingAssets"ができる。 これがないとAddressableにアクセスできない。 ==依存関連== 通常DirにSpriteの画像ファイルを用意して、ResoucesにImageを、作り、Imageのspriteに先程の画像を追加して、Imageをaddressableにすると、Spriteの画像もaddressableのbundle含まれる。実際に検証して、確認もできた。 参考:https://qiita.com/kkpp/items/8238e54cfc67a777a0e9 ==addressable設定値の場所== Assets/AddressableAssetsData/AddressableAssetSettings.asset ==アプリサイズが大きすぎる場合== 例:iOSの場合 *"Default Local Group"の"Build & Load Paths"をLocalからRemoteになってるか確認 *Localビルドデータ(Library/com.unity.addressables/aa/iOS/iOS)があれば消す。or addressableのcache削除で消してもok *Remoteビルドデータ(ServerData/iOS)を一旦消す。or addressableのcache削除で消してもok ==andoridのEditorモードのaddressableのmaterialがピンクになる問題== なぜなるのか不明だが、回避策として・・ *PlayModeScriptを、Use Existing Build(requires built groups)からUse Asset Database (fastest)に変えておくと、うまくいくので、Editorモードで、限定してやれば良いかも。 *iosやandroidの実機端末での再生では問題ない。 ==Remote.LoadPath変更== Unityメインメニュー/Window/AssetsManager/Addressable/Profile/ManageProfileを選択 Remote.LoadPathの以下デフォルトを変更 ttp://[PrivateIpAddress]:[HostingServicePort] hoge.example.com/iOSからロードしたい場合 ttp://hoge.example.com/[BuildTarget] ==サーバー側で"Access-Control-Allow-Origin"エラーが出る場合== .htaccessを設置する場合、.htaccessを以下のように Header set Access-Control-Allow-Origin "*" phpの場合 header("Access-Control-Allow-Origin: *"); ==参考== https://robamemo.hatenablog.com/entry/2021/01/08/195415 https://light11.hatenadiary.com/entry/2019/12/26/225232 https://light11.hatenadiary.com/entry/2020/07/29/202755
Unity/Addressable/基本
に戻る。
ナビゲーション メニュー
個人用ツール
ログイン
名前空間
ページ
議論
日本語
表示
閲覧
ソースを閲覧
履歴表示
その他
検索
案内
プログラムメモ
php
flutter
java
android
kotlin
ios
unity
unrealengine
javascript
mysql
sqlite
postgresql
oracle
mroonga
mongodb
flash
electron
cocos2dx
titanium
cpp
ruby
perl
python
accessメモ
rss
html
monaca
cordova
golang
blender
セキュリティ
テストツール
サーバメモ
linux
dotnet
apacheメモ
htaccessメモ
subversion
git
仮想サーバ
ansible
sendgrid
xampp
cacti
mecab
faces
flashpolicyd
fcs
jenkins
運用
デザインメモ
css
ユーザビリティ
ux
サービスメモ
twitter
facebook
instagram
mixi
セカンドライフ
通信ログ横取り
google
ustream
aws
gcp
plesk
azure
vps
AI
その他サービス
便利系メモ
SEO
モバイル
抽象変数名
DDD
クライアント
firefox
chrome
pgp
windows
mac
jmetar
Thunderbird
excel
libreoffice
vpnclient
doxygen
VisualStudioCode
fastlane
metaquest
cmsメモ
mediawiki
pukiwiki
wordpress
その他
資格
IT用語
pvを稼ぐ方法
将棋プログラム
その他
ログイン
ページ内
メインページ
最近の更新
人気のページ
問い合わせ
ツール
リンク元
関連ページの更新状況
ページ情報