Make calls to WWW using callbacks.
Switch branches/tags
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.


I often found myself writing the same code over and over when dealing with Unity's WWW class. This library provides easy use of many of those patterns.


This is the primary interface to the library. It is also available as a singleton with the class NetworkEngineSingleton. Basic example:

using UnityEngine;
using WWWNetworking;
public class FloatingImage : MonoBehaviour {
  void Start() {
    NetworkEngineSingleton.Instance.Download("", www => {
      GetComponent<Renderer>().material.mainTexture = www.texture;

Each instance has a configurable maximum number of concurrent requests. Increasing the maximum immediately starts running more requests if queued while decreasing leaves requests running if over the maximum.

The network engine can technically run anything which is an IRequest. The requests don't necessarily need to be network requests. You can easily implement a request which does something completely different.

Request Classes

These are pre-built classes for common tasks with downloading files and running some code using that file. I will add to the included ones over time. Feel free to submit a pull-request for a new one. You should extract any data from the WWW object in the success callback since it is disposed afterward.


A basic request wich downloads a file and runs code on success.


Downloads a file and provides callbacks for both success and error. All remaining request classes inherit from this.


Downloads a file and provides callbacks for progress updates, successful completion, and error.


Performs a post to a url with form data. Provides callbacks for success and error.


Performs a post to a url with form data. Provides callbacks for upload progress, download progress, successful completion, and error.


Loads an asset bundle from the cache or downloads when not in the cache.


For anyone curious, the URL in the examples is the same one used in Unity's official documentation for WWW.texture.