【パブリッシャー丸ごとセール第104弾】9月27日 0:00 〜 10月3日(木) 23:59まで
AiKodexのアセット50%オフ
↓↓↓ 今週の無料アセットプレゼント🎁
『Pose AI』$44 => FREE(10月3日 23:59まで無料)
クーポンコード:AIKODEX
【Fresh Asset sale】⏰️ 9月19日 〜 10月2日 23:59まで 《 水曜日まで 》
200を超える最新の人気アセットがお買い得。秋のフレッシュアセットセール 🎉
🈹 合計60ドル以上のご注文ならクーポン適用で さらに10%オフ
クーポンコード:SEP10BER
※ 有効期限:2024年9月30日まで、複数回利用可能、セール品以外にも使えます
【Humble Bundle】 その他 ソフトウェアバンドルはこちら
『BLENDER MARKET: BEST OF 2024』 ⏰️ 10月5日(土) 3時まで
Blender用のワールド構築ツールキット。地形、液体、人間、植物など豪華なアセットバンドル
価格:$30で31アイテム
『LEARN TO CREATE GAME ART IN BLENDER 2024』 ⏰️ 10月1日(火) 3時まで
Blenderのスキルアップ。GameDev.tvのGDTVゲームアートバンドルコース(英語)
『LEARTES UNREAL AND UNITY ASSETS GIGA BUNDLE ENCORE』 ⏰️ 10月7日(月) 3時まで
最新3Dモデルが破格⚡️Unityとアンリアルエンジン混合バンドル $30で61アイテム
『SYNTY'S POLYGON GAME DEV ASSETS BUNDLE 3 REMIX』 ⏰️ 10月15日(火) 3時まで
ゲーム開発でお馴染みSynty Studiosの豪華な3Dモデルバンドル!25ドルで23アイテム手に入る
『ARCADE PARADISE: GAME DEV TREASURE CHEST』 ⏰️ 10月18日(金) 3時まで
Unityゲーム開発アセットが大量に手に入る破格のオールインワンバンドル NEW!!
アセットストアでキーを引き換える方法はこちら
$35 = 25item / $30 = 24item / $21.84 = 9item / $1 = 3item(30ドルがオススメ)
Condor Plus Trial - Unity asset manage library by using assetbundle.
This is a trial version. Please go to https://assetstore.unity.com/packages/slug/124093 for full source version if you need it.
☄️HIGHLIGHTS☄️
Manage asset load and unload
Update bundle online
Snapshot to report asset leak problem
100% source code included
Core code is covered by unit test. You could change code to customize it with more confidence
☄️ Website: Learn more about Condor Plus
☄️ Support: Submit any questions
☄️FEATURE☄️
Use reference count to solve memory leak problem(Use AssetBundle.Unload(true) to unload asset deterministic)
Use AssetBundle reference count to solve AssetBundle dependencies problem(make sure all dependencies are loaded in correct sequence)
Use non-blocking call to solve hiccup problem(remove all hiccups which could avoid, mitigate load in main thread)
Use state matchine to solve cache problem(make asset stay in memory for seconds when reference count is 0)
Use weak reference to solve memory leak caused by library self(stop GC to recollect memory)
Automatic manage asset bundle dependencies, you could split asset bundle arbitrarily
Scene load in Editor helper script, help load scene in simulate mode
☄️INTRODUCTION☄️
Supported platforms
iOS
Android
Windows Editor
macOS Editor
Build
Check cyclic reference
- Report cyclic reference path to solve it easily
Check AssetBundleName confliction
- Check if AssetBundleName is same with directory part of other AssetBundleName
Check CRC
- Prevent Unity from using old AssetBundle by not calculate hash correctly
- Happened several times in real project
- AssetBundle is outdated and couldn't load now
- Support delete asset bundle which didn't pass crc check and retry build all assetbundles with 5 times
Clean useless directories and files automatically
- Clean before build
- Clean before copy built assetbundles to StreamingAssets directory
AssetBundle copy to StreamingAssets
- Only copy files which is updated
Cache MD5 caculation
- cache file size, last modify time, AssetBundle CRC
- Recalculate MD5 by checking cache validity to speed build
Automatic manage asset bundle dependencies, you could split asset bundle arbitrarily
Update
Automatic download changed bundles
Automatic retry after download error, retry count is customizable
Persist consistent directory structure with update target
Download speed limit
Downloaded and total bytes progress
Download thread pool with custom number
Load
Non-blocking api to load asset and scene
Use reference count to manage asset and assetbundle
Reference is saved by weak reference, don't impede GC
Reference saved detailed information
- Type, fullname including namespace
- Path, if object is GameObject or Component
- Callback, fullname including namespace
- Count
AssetBundle dependencies automatic management
AssetBundle load crc check
Cache AssetBundle in StreamingAssets directory
File in Android APK load support
Cache asset when reference count is 0
Load queue to load asset from AssetBundle, default capacity is 5
Finite state machine manage lifecycle
Debug
UI
Assets
- AssetPath
- Client fullname
- Callback fullname
- Reference count
- State
Bundles
- Bundle
- Reference count
- State
Automatic adapte screen
Snapshot
- Automatic compare two snapshot and warning if there is difference
Editor Support
Load assets and scenes without building assetbundles
Check if assetbundlename is set for correspond asset
Stop all threads after exit play mode to keep consistent
Shader reset tools
- Shader would be missing if load assetbundle which built for non-editor platform
- Should reset shader to editor version manually after load asset
Editor scene load helper
- Load scene automatically in simulate mode
Helper
Preload manager support load file from zip and apk
Preload manager use custom thread pool to do IO operation
Compression format
LZ4
- Use chunk-based algorithm to get balance on speed and size
Engineer
Unit test
- Core code covered
Code clean and simple
Separate module reasonably
Use less code in module, about 100 loc per file
No explicit thread synchronization to avoid bugs
Third party libraries
Editor
- YamlDotNet
- - Cache calculated MD5
- NSubstitute
- - Unit test helper
Runtime
- ZipStorer
- - Support decompress files on Android
Would not support
variant support
- It violates design purpose, which could use path to determine asset
blocking load
- It could cause potential hiccups in main thread
☄️USAGE☄️
Run Tools > Condor > Setup to initilize, and create two config files
1 Runtime config, Assets/Resources/Condor/Config.asset
2 Editor scene config, Assets/Editor/Condor/SceneConfig.asset, we need save scenes manualy to this config to support load scenes in Editor simulate mode
Create or find your asset and set AssetBundleName for it.
Write code to initialize Condor.
Write code to load and unload your asset by using full asset path(starting with Assets).
Then you could test load asset when enable Editor Simulation in config.
Run Tools > Condor > BuildAssetBundles could build AssetBundles and copy to StreamingAssets directory.
Then you could load asset from assetbundles.
Build to iOS/Android platform and you could load asset from assetbundles packaged in ipa/apk.
Update feature
1. Come to your project root and start `python -m SimpleHTTPServer` in command line.
2. Remove all files in `StreamingAssets/BundlesPackaged`
3. Switch on `Speed Limit` and set `Max download rate` in `Resources/Condor/Config.asset`
4. Open `Assets/Plugins/Condor/Examples/Scenes/Update.unity` and start play
☄️PRECAUTION☄️
Unit test support is include in Unity 5.6.0f3 and above, which packaged NUnit 3.5.0.0 and previous ones package NUnit 2.6.4.0
HttpWebRequest Android IL2CPP support is started from Unity 5.4.2f2
Editor simulate load Bundle information is supported in Unity 5.5.0f3 and above
Editor simulate load scenes support load by path in Unity 5.5.0f3 and above, only support load by name in previous versions
☄️API INTERFACE☄️
Initialize and destroy
Condor.Manager.Init()
Condor.Manager.Destroy()
Load and Unload
Condor.Manager.LoadAsync()
Condor.Manager.UnloadAsync()
Clean cache
Condor.Manager.UnloadUnusedImmediately()
Snapshot
Condor.Manager.BeginSnapshot()
Condor.Manager.EndSnapshot()
☄️EXAMPLES☄️
Update
Condor/Examples/Scenes/Update.unity
Asset load
Condor/Examples/Scenes/Asset.unity
Scene load
Condor/Examples/Scenes/Scene.unity
Snapshot
Condor/Tests/IntegrationTests/Scenes/SnapshotIntegrationTests.unity
☄️THIRD PARTY LIBRARIES☄️
This asset uses YamlDotNet under MIT-LICENSE, NSubstitute under BSD-3-Clause, ZipStorer under MIT-LICENSE; see Third-Party Notices.txt file in package for details.
Use YamlDotNet to deserialize AssetBundleManifest and caculate MD5.
YamlDotNet for Unity - Asset Store
https://www.assetstore.unity3d.com/en/#!/content/36292 - 4.1.0 (Feb 01, 2017)
MIT-LICENSE
Editor/Libraries/YamlDotNet/YamlDotNet.license.txt
Use NSubstitute to fake object for unit test.
NSubstitute: A friendly substitute for .NET mocking libraries
http://nsubstitute.github.io/ - 2.0.3 (Apr 25, 2017)
BSD-3-Clause
Editor/Libraries/NSubstitute/LICENSE.txt
Use ZipStorer to decompress files from zip or apk.
jaime-olivares/zipstorer: A Pure C# Class to Store Files in Zip
https://github.com/jaime-olivares/zipstorer - 3.4.0 (August 4, 2017)
MIT-LICENSE
https://github.com/jaime-olivares/zipstorer/blob/master/LICENSE.md
▼ Humble Bundle
ソフトウェアバンドル
リンク集
copyright © AssetStoreまとめ 割引情報 beta All Rights Reserved.