shamsdev / davinci

An esay-to-use image downloading and caching library for Unity
MIT License
289 stars 52 forks source link
cs csharp davinci image image-downloader unity unity-ui unity3d

Davinci

πŸ–Ό A powerful, easy-to-use image downloading and caching library for Unity in Run-Time! 😎

Simple usage - Single line of code and ready to go!

Davinci.get().load(imageUrl).into(image).start();

πŸ”΄ Update : Support for any type of Renderer components has been added. now we can download 3D model's textures in run-time!

Features

Customizable image placeholders

Davinci.get()
    .load(url)
    .setLoadingPlaceholder(loadingTexture)
    .setErrorPlaceholder(errorTexture)
    .into(image)
    .start();

Loading Fade Time

Davinci.get()
    .load(url)
    .setFadeTime(2) // 0 for disable fading
    .into(image)
    .start();

Fully access to operation progress and callbacks

Davinci.get()
    .load(imageUrl)
    .into(image)
    .withStartAction(() =>
    {
        Debug.Log("Download has been started.");
    })
    .withDownloadProgressChangedAction((progress) =>
    {
        Debug.Log("Download progress: " + progress);
    })
    .withDownloadedAction(() =>
    {
        Debug.Log("Download has been completed.");
    })
    .withLoadedAction(() =>
    {
        Debug.Log("Image has been loaded.");
    })
    .withErrorAction((error) =>
    {
        Debug.Log("Got error : " + error);
    })
    .withEndAction(() =>
    {
        Debug.Log("Operation has been finished.");
    })
    .start();

Caching Control

You can simply cache downloaded images so Davinci won't download it again from the same url. It's cool! Isn't it? 😁 (Default is True)

Davinci.get().load(imageUrl).setCached(true).into(image).start();

Also you can clear Davinci cached files:

//For a certain file
Davinci.CleareCache(imageUrl);

//For all files
Davinci.ClearAllCachedFiles();

Also:

Supporting Platforms

Usage

Clone the project. Open Davinci/Assets in unity or import the UnityPackage to your existing project.

You can see lots of examples in Assets/Examples

Please see the Wiki page for more information and examples

Development

Want to contribute? Great!

Make a change in your file and instantaneously see your updates!

TODO

License

Davinci is available under the MIT license. See the LICENSE file for more info.