public void GetTexture(string url, Action <Texture> callback, string alias = null) { VerifyUrl(url); if (!url.IsEmpty()) { Texture t = assetCache.Get(url) as Texture; if (t != null) { callback(t); } else { if (url.Is(FileType.Asset)) { GetAsset <Texture>(alias, url, callback, false); } else { callbacks.Add(url, callback); if (callbacks.GetCount(url) == 1) { log.Debug("Loading {0}", url); loader.GetTexture(pathConverter(url), tex => { if (tex != null) { AddToCache(alias, url, tex); } List <Delegate> slot = callbacks.GetSlot(url); foreach (Delegate c in slot) { ((Action <Texture>)c)(tex); } callbacks.Remove(url); }); } } } } else { callback(null); } }