Upgrade to Pro — share decks privately, control downloads, hide ads and more …

URLCaching in Unity

Toru
November 28, 2018

URLCaching in Unity

Changing asset in released-app made with Unity is not so easy.
This feature changes it.

Toru

November 28, 2018
Tweet

More Decks by Toru

Other Decks in Technology

Transcript

  1. URLCachingͷ࿩ • twitter:@toru_inoue • github:sassembla • Autoya͍ͬͯ͏Unity Framework ࡞ऀ •

    ࠷ۙ͸IRIAMͬͭʔ഑৴αʔϏε΍ͬͯ·͢ (͓ख఻͍తͳҙຯͰ)
  2. API public static void Persist_URLCaching_Load<T>( string domain, string url, Func<byte[],

    T> bytesToTConverter, Action<T> onLoaded, Action<int, string> onLoadFailed, Dictionary<string, string> requestHeader=null) where T : UnityEngine.Object ͜ͷϝιουҰൃͰɺURLCachingͷ͢΂ͯΛ࣮ߦɻ
  3. public static void Persist_URLCaching_Load<T>( string domain, string url, Func<byte[], T>

    bytesToTConverter, Action<T> onLoaded, Action<int, string> onLoadFailed, Dictionary<string, string> requestHeader=null) where T : UnityEngine.Object urlͱ͔ byte[] to Tܕม׵ࣜηοτ࣮ͯ͠ߦ →(ඞཁͳΒurl͔ΒσʔλΛDL) →Tܕσʔλͱͯ͠ඇಉظల։ɻ API
  4. bytes => { var tex = new Texture2D(1, 1); tex.LoadImage(bytes);

    var newSprite = Sprite.Create(tex, new Rect(0, 0, tex.width, tex.height), new Vector2(.5f, .5f)); return newSprite; } Func<byte[], T> bytesToTConverter ྫ byte[]͔ΒSpriteΛੜ੒ͯ͠ฦ͢ͱ͔ͩͱ ͳײ͡ɻ
  5. Unityͷ2017͋ͨΓ͔Β௥Ճ͞ΕͨAPIͰɺDownloadHandlerFile ͱ͍͏ͷ͕͋ͬͯɻ https://docs.unity3d.com/ScriptReference/Networking.DownloadHandlerFile.html URLCachingʹ࢖͍ͬͯΔɻ ͜ΕΛ࢖͏ͱɺUnityͷC#ϨΠϠΛ伵·ͣ͞ʹωΠςΟϒͷϑΝΠϧγεςϜʹରͯ͠μΠϨΫτʹ Web͔ΒDLͨ͠ϑΝΠϧΛੜ੒Ͱ͖Δɻ ͭ·Γ Web -> C#

    -> ϑΝΠϧγεςϜ Ͱ͸ͳ͘ɺ Web -> ϑΝΠϧγεςϜ ͱ΍Δ͜ͱͰɺͳΜͱ͍͏͔ແବͳ౒ྗΛফͤΔɻ ͪͳΈʹϚδͰC#্ʹσʔλΛల։͠ͳ͍ͨΊɺWebRequestͷdataͱ͔Λಡ΋͏ͱ͢Δͱ Unsupported PlatformΤϥʔ͕ͰΔపఈͬ΀Γɻ ಠࣗʹAssetBundleΛDL͢Δͷʹ΋࢖͑Δɻ ͳʹΑΓUnity͕ϝϯςͯ͘͠ΕΔωΠςΟϒϨΠϠͷૢ࡞Λߦ͑ΔAPIͳͷͰɺ ࠓ·ͰʮUnityͰWeb͔ΒԿ͔ΛDL͢ΔͱσʔλͷίϐʔͰϝϞϦ͕ʙʯΈ͍ͨͳ໰୊Λײͯͨ͡ਓʹ ͏͚ͬͯͭɻ ͓·͚:εςΩٕज़ʹ͍ͭͯ