private static UniRx.IObservable <long> CreateTimeObservable() { return(from www in ObservableWWW.GetWWW("https://fp-cloudsync.herokuapp.com/time?t=" + DateTime.UtcNow.Ticks).Timeout(TimeSpan.FromSeconds(5.0)) select Convert.ToInt64(www.text)); }
public static async Task DownloadAsync(string path, string name, string url) { var data = await ObservableWWW.GetAndGetBytes(url); BinarySerializeUtility.WriteBinary(path + name, data); }
void Start() { // Basic: Download from google. { ObservableWWW.Get("http://google.co.jp/") .Subscribe( x => Debug.Log(x.Substring(0, 100)), // onSuccess ex => Debug.LogException(ex)); // onError } // Linear Pattern with LINQ Query Expressions // download after google, start bing download { var query = from google in ObservableWWW.Get("http://google.com/") from bing in ObservableWWW.Get("http://bing.com/") select new { google, bing }; var cancel = query.Subscribe(x => Debug.Log(x.google.Substring(0, 100) + ":" + x.bing.Substring(0, 100))); // Call Dispose is cancel downloading. cancel.Dispose(); } // Observable.WhenAll is for parallel asynchronous operation // (It's like Observable.Zip but specialized for single async operations like Task.WhenAll of .NET 4) { var parallel = Observable.WhenAll( ObservableWWW.Get("http://google.com/"), ObservableWWW.Get("http://bing.com/"), ObservableWWW.Get("http://unity3d.com/")); parallel.Subscribe(xs => { Debug.Log(xs[0].Substring(0, 100)); // google Debug.Log(xs[1].Substring(0, 100)); // bing Debug.Log(xs[2].Substring(0, 100)); // unity }); } // with Progress { // notifier for progress var progressNotifier = new ScheduledNotifier <float>(); progressNotifier.Subscribe(x => Debug.Log(x)); // write www.progress // pass notifier to WWW.Get/Post ObservableWWW.Get("http://google.com/", progress: progressNotifier).Subscribe(); } // with Error { // If WWW has .error, ObservableWWW throws WWWErrorException to onError pipeline. // WWWErrorException has RawErrorMessage, HasResponse, StatusCode, ResponseHeaders ObservableWWW.Get("http://www.google.com/404") .CatchIgnore((WWWErrorException ex) => { Debug.Log(ex.RawErrorMessage); if (ex.HasResponse) { Debug.Log(ex.StatusCode); } foreach (var item in ex.ResponseHeaders) { Debug.Log(item.Key + ":" + item.Value); } }) .Subscribe(); } }
private void CreateMesh(Tile tile, WWW terrarium) { var url = TileServiceUrls[(int)TileService] + tile.Zoom + "/" + tile.TileTms.x + "/" + tile.TileTms.y + ".png"; const int sampleCount = 3; var tex = new Texture2D(256, 256); terrarium.LoadImageIntoTexture(tex); ObservableWWW.GetWWW(url).Subscribe( success => { var go = new GameObject("TerrainHeight"); var mesh = go.AddComponent <MeshFilter>().mesh; var rend = go.AddComponent <MeshRenderer>(); var verts = new List <Vector3>(); // When sampleCount == 3, compute 9 points: the four corners, the center, and the four midpoints along the side // vertices are (all at the appropriate y = height): // 0) minX, minY // 1) minX, halfY // 2) minX, maxY // 3) halfX, minY // 4) halfX, halfY // 5) halfX, maxY // 6) maxX, minY // 7) maxX, halfY // 8) maxX, maxY for (float x = 0; x < sampleCount; x++) { for (float y = 0; y < sampleCount; y++) { // Lerp: Linearly interpolates between left and right corner. var xx = Mathf.Lerp((float)tile.Rect.Min.x, (float)(tile.Rect.Min.x + tile.Rect.Size.x), x / (sampleCount - 1)); var yy = Mathf.Lerp((float)tile.Rect.Min.y, (float)(tile.Rect.Min.y + tile.Rect.Size.y), y / (sampleCount - 1)); // Clamp: Clamps value between min and max and returns value. var px = (int)Mathf.Clamp((x / (sampleCount - 1) * 256), 0, 255); // 0, 128, 255 var py = (int)Mathf.Clamp((256 - (y / (sampleCount - 1) * 256)), 0, 255); // 255, 128, 0 // Compute relative vector with respect to the origin verts.Add(new Vector3( (float)(xx - tile.Rect.Center.x), GetTerrariumHeight(tex.GetPixel(px, py)), (float)(yy - tile.Rect.Center.y))); } } mesh.SetVertices(verts); // Create a mesh mesh.triangles = new int[] { 0, 3, 4, 0, 4, 1, 1, 4, 5, 1, 5, 2, 3, 6, 7, 3, 7, 4, 4, 7, 8, 4, 8, 5 }; mesh.SetUVs(0, new List <Vector2>() { new Vector2(0, 1), new Vector2(0, 0.5f), new Vector2(0, 0), new Vector2(0.5f, 1), new Vector2(0.5f, 0.5f), new Vector2(0.5f, 0), new Vector2(1, 1), new Vector2(1, 0.5f), new Vector2(1, 0), }); mesh.RecalculateNormals(); go.transform.SetParent(tile.transform, false); rend.material.mainTexture = new Texture2D(512, 512, TextureFormat.DXT5, false); rend.material.color = new Color(1f, 1f, 1f, 1f); success.LoadImageIntoTexture((Texture2D)rend.material.mainTexture); }, error => { Debug.Log(error); }); }
void PushMessage(byte[] postData) { ObservableWWW.Post(_host, postData, _headers).ObserveOnMainThread().Subscribe(mes => {}, ex => Debug.LogError("Logserver, ex = " + ex)); }
public static void ReportSegTime(int segid, string segdesc) { var url = string.Format("{0}id={1}&segid={2}&segdesc={3}", Url_SegDot, GetID, segid, segdesc); ObservableWWW.Get(url).Subscribe(Debug.Log); }
/// <inheritdoc /> public IObservable <string> Get(string url, Dictionary <string, string> headers = null) { return(ObservableWWW.Get(url, headers)); }
static public void GetBalanceSummary(BitcoinAddress address, NBitcoin.Network network, GetBalanceSummaryResponse response, bool colored = true) { ObservableWWW.Get(URL(network, "balances/" + EscapeUrlPart(address.ToString()) + "/summary" + CreateParameters("colored", colored))). Subscribe(x => response(JsonUtility.FromJson <Models.BalanceSummary>(x).Result(), network), ex => Debug.Log("error : " + ex.Message)); }
public virtual IObservable <WWW> Load(string path) { return(ObservableWWW.GetWWW(path)); }
static public void BlockHeader(QBitNinja.Client.Models.BlockFeature blockFeature, NBitcoin.Network network, BlockHeaderResponse response) { ObservableWWW.Get(URL(network, "blocks/" + EscapeUrlPart(blockFeature.ToString()) + "/header")). Subscribe(x => response(JsonUtility.FromJson <Models.WhatIsBlockHeader>(x).Result(), network), ex => Debug.Log("error : " + ex.Message)); }
static public void GetBalance(BitcoinAddress address, NBitcoin.Network network, GetBalanceResponse response, bool includeImmature = false, bool unspentOnly = false, bool colored = true) { ObservableWWW.Get(URL(network, "balances/" + EscapeUrlPart(address.ToString()) + CreateParameters("includeImmature", includeImmature, "unspentOnly", unspentOnly, "colored", colored))). Subscribe(x => response(JsonUtility.FromJson <Models.BalanceModel>(x).Result(), network), ex => Debug.Log("error : " + ex.Message)); }
static public void GetBlock(QBitNinja.Client.Models.BlockFeature blockFeature, NBitcoin.Network network, GetBlockResponse response, bool headerOnly = false, bool extended = false) { ObservableWWW.Get(URL(network, "blocks/" + EscapeUrlPart(blockFeature.ToString()) + CreateParameters("headerOnly", headerOnly, "extended", extended))). Subscribe(x => response(JsonUtility.FromJson <Models.GetBlockResponse>(x).Result(), network), ex => Debug.Log("error : " + ex.Message)); }
static public void Broadcast(Transaction transaction, NBitcoin.Network network, BroadcastResponse response) { ObservableWWW.Post(URL(network, "transactions"), transaction.ToBytes(), HEADER()). Subscribe(x => response(JsonUtility.FromJson <Models.BroadcastResponse>(x).Result(), network), ex => Debug.Log("error : " + ex.Message)); }
static public void GetTransaction(uint256 transactionId, NBitcoin.Network network, GetTransactionResponse response) { ObservableWWW.Get(URL(network, "transactions/" + EscapeUrlPart(transactionId.ToString()))). Subscribe(x => response(JsonUtility.FromJson <Models.GetTransactionResponse>(x).Result(), network), ex => Debug.Log("error : " + ex.Message)); }
protected override void OnBegin() { UniRx.IObservable <string> www = null; if (User.Logined) { Dictionary <string, string> headers = new Dictionary <string, string>(); headers.Add("Authorization", "Token " + User.Token); var form = new WWWForm(); form.AddField("username", User.Username.Value); form.AddField("password", User.Password.Value); www = ObservableWWW.Post("https://api.liangxiegame.com/qf/v4/package/list", form, headers); } else { www = ObservableWWW.Post("https://api.liangxiegame.com/qf/v4/package/list", new WWWForm()); } www.Subscribe(response => { var responseJson = JObject.Parse(response); if (responseJson["code"].Value <string>() == "1") { var packageInfosJson = responseJson["data"]; var packageDatas = new List <PackageData>(); foreach (var packageInfo in packageInfosJson) { var name = packageInfo["name"].Value <string>(); var package = packageDatas.Find(packageData => packageData.Name == name); if (package == null) { package = new PackageData() { Name = name, }; packageDatas.Add(package); } var id = packageInfo["id"].Value <string>(); var version = packageInfo["version"].Value <string>(); var url = packageInfo["downloadUrl"].Value <string>(); // download_url var installPath = packageInfo["installPath"].Value <string>(); // var releaseNote = packageInfo["release_note"].Value<string>(); var createAt = packageInfo["createAt"].Value <string>(); var creator = packageInfo["username"].Value <string>(); // var docUrl = packageInfo["doc_url"].Value<string>(); var releaseItem = new ReleaseItem(version, "", creator, DateTime.Parse(createAt)); // var accessRightName = packageInfo["access_right"].Value<string>(); var packageType = PackageType.FrameworkModule; // switch (typeName) // { // case "fm": // packageType = PackageType.FrameworkModule; // break; // case "s": // packageType = PackageType.Shader; // break; // case "agt": // packageType = PackageType.AppOrGameDemoOrTemplate; // break; // case "p": // packageType = PackageType.Plugin; // break; // } var accessRight = PackageAccessRight.Public; // switch (accessRightName) // { // case "public": accessRight = PackageAccessRight.Public; // break; // case "private": // accessRight = PackageAccessRight.Private; // break; // // } package.PackageVersions.Add(new PackageVersion() { Id = id, Version = version, DownloadUrl = url, InstallPath = installPath, Type = packageType, AccessRight = accessRight, Readme = releaseItem, // DocUrl = docUrl, }); package.readme.AddReleaseNote(releaseItem); } packageDatas.ForEach(packageData => { packageData.PackageVersions.Sort((a, b) => b.VersionNumber - a.VersionNumber); packageData.readme.items.Sort((a, b) => b.VersionNumber - a.VersionNumber); }); mOnGet.InvokeGracefully(packageDatas); new PackageInfosRequestCache() { PackageDatas = packageDatas }.Save(); Finished = true; } }, e => { mOnGet.InvokeGracefully(null); Log.E(e); }); }
void Awake() { var fileItemList = new List <GameObject>(); var model = MusicSelectorModel.Instance; directoryPathInputField.OnValueChangeAsObservable() .Subscribe(path => model.DirectoryPath.Value = path); model.DirectoryPath.DistinctUntilChanged() .Subscribe(path => directoryPathInputField.text = path); model.DirectoryPath.Value = Application.persistentDataPath + "/Musics/"; if (!Directory.Exists(model.DirectoryPath.Value)) { Directory.CreateDirectory(model.DirectoryPath.Value); } Observable.Timer(TimeSpan.FromMilliseconds(300), TimeSpan.Zero) .Where(_ => Directory.Exists(model.DirectoryPath.Value)) .Select(_ => new DirectoryInfo(model.DirectoryPath.Value).GetFiles()) .Select(fileInfo => fileInfo.Select(file => file.FullName).ToList()) .Where(x => !x.SequenceEqual(model.FilePathList.Value)) .Subscribe(filePathList => model.FilePathList.Value = filePathList); model.FilePathList.AsObservable() .Select(filePathList => filePathList.Select(path => Path.GetFileName(path))) .Do(_ => fileItemList.ForEach(DestroyObject)) .Do(_ => fileItemList.Clear()) .SelectMany(fileNameList => fileNameList) .Select(fileName => new { fileName, obj = Instantiate(fileItem) as GameObject }) .Do(elm => fileItemList.Add(elm.obj)) .Do(elm => elm.obj.transform.SetParent(fileItemContainer.transform)) .Subscribe(elm => elm.obj.GetComponent <FileItem>().SetName(elm.fileName)); LoadButton.OnClickAsObservable() .Select(_ => model.SelectedFileName.Value) .Where(fileName => !string.IsNullOrEmpty(fileName)) .Subscribe(fileName => { ObservableWWW.GetWWW("file:///" + Application.persistentDataPath + "/Musics/" + fileName).Subscribe(www => { if (www.audioClip == null) { // selectedFileNameText.text = fileName + " は音楽ファイルじゃない件!!!!!!!!!!!!!"; return; } var editorModel = NotesEditorModel.Instance; editorModel.ClearNotesData(); // Apply music data editorModel.Audio.clip = www.audioClip; editorModel.MusicName.Value = fileName; editorModel.OnLoadedMusicObservable.OnNext(0); LoadNotesData(); }); }); // model.SelectedFileName.SubscribeToText(selectedFileNameText); }
// Use this for initialization void Start() { print("Concat============"); //【Concat】 //Concatでストリームを結合してる Observable // 0,1,2と値を発行する .Range(0, 3).Select(i => "1st: " + i) .Concat( // 5,6,7,8,9と値を発行する Observable.Range(5, 5).Select(i => "2nd: " + i) ) .Subscribe(s => Debug.Log("OnNext: " + s)); //上と同じ Observable .Concat( // 0,1,2と値を発行する Observable.Range(0, 3).Select(i => "1st: " + i), // 5,6,7,8,9と値を発行する Observable.Range(5, 5).Select(i => "2nd: " + i) ) // 講読 .Subscribe(s => Debug.Log("OnNext: " + s)); print("StartWith============"); //【StartWith】 //StartWithのストリームが初めに来る。 Observable // 1,2,3,4と値を発行するシーケンス .Range(1, 4) // 頭に10,20,30をつける .StartWith(10, 20, 30) // 購読 .Subscribe(s => Debug.Log("OnNext: " + s)); print("Network operations============"); ObservableWWW.Get("http://google.co.jp/") .Subscribe( x => Debug.Log(x.Substring(0, 100)), // onSuccess ex => Debug.LogException(ex)); // onError print("Network operations2============"); // composing asynchronous sequence with LINQ query expressions var query = from google in ObservableWWW.Get("http://google.com/") from bing in ObservableWWW.Get("http://bing.com/") from unknown in ObservableWWW.Get(google + bing) select new { google, bing, unknown }; var cancel = query.Subscribe(x => Debug.Log(x)); // Call Dispose is cancel. cancel.Dispose(); print("Network operations3============"); // Observable.WhenAll is for parallel asynchronous operation // (It's like Observable.Zip but specialized for single async operations like Task.WhenAll) var parallel = Observable.WhenAll( ObservableWWW.Get("http://google.com/"), ObservableWWW.Get("http://bing.com/"), ObservableWWW.Get("http://unity3d.com/")); parallel.Subscribe(xs => { Debug.Log(xs[0].Substring(0, 100)); // google Debug.Log(xs[1].Substring(0, 100)); // bing Debug.Log(xs[2].Substring(0, 100)); // unity }); print("SelectMany============"); //【SelectMany】 //SelectManyはselectとmerge //コルーチンAsyncAを呼び出してAsyncBをmerge var cancel2 = Observable.FromCoroutine(AsyncA) .SelectMany(AsyncB) .Subscribe(); }
public IObservable <WWW[]> LoadFile(string url) { return(Observable.WhenAll(ObservableWWW.GetWWW(url))); }
public void OnGUI() { var xpos = 0; var ypos = 0; if (GUI.Button(new Rect(xpos, ypos, 100, 100), "Clear")) { logtext.Length = 0; } ypos += 100; if (GUI.Button(new Rect(xpos, ypos, 100, 100), "Now")) { logger.Debug(DateTime.Now.ToString()); } ypos += 100; if (GUI.Button(new Rect(xpos, ypos, 100, 100), "TimeScale-1")) { Time.timeScale -= 1f; } ypos += 100; if (GUI.Button(new Rect(xpos, ypos, 100, 100), "TimeScale+1")) { Time.timeScale += 1f; } ypos += 100; if (GUI.Button(new Rect(xpos, ypos, 100, 100), "TimeScale=0")) { Time.timeScale = 0; } ypos += 100; if (GUI.Button(new Rect(xpos, ypos, 100, 100), "TimeScale=100")) { Time.timeScale = 100; } ypos += 100; if (GUI.Button(new Rect(xpos, ypos, 100, 100), "Scheduler0")) { logger.Debug("run"); Scheduler.MainThread.Schedule(TimeSpan.FromMilliseconds(5000), () => { logger.Debug(DateTime.Now); }); } xpos += 100; ypos = 0; if (GUI.Button(new Rect(xpos, ypos, 100, 100), "Scheduler1")) { logger.Debug("Before Start"); Scheduler.MainThread.Schedule(() => logger.Debug("immediate")); Scheduler.MainThread.Schedule(TimeSpan.Zero, () => logger.Debug("zero span")); Scheduler.MainThread.Schedule(TimeSpan.FromMilliseconds(1), () => logger.Debug("0.1 span")); logger.Debug("After Start"); } ypos += 100; if (GUI.Button(new Rect(xpos, ypos, 100, 100), "Scheduler2")) { logger.Debug("M:Before Start"); Scheduler.MainThread.Schedule(TimeSpan.FromSeconds(5), () => logger.Debug("M:after 5 minutes")); Scheduler.MainThread.Schedule(TimeSpan.FromMilliseconds(5500), () => logger.Debug("M:after 5.5 minutes")); } ypos += 100; if (GUI.Button(new Rect(xpos, ypos, 100, 100), "Realtime")) { logger.Debug("R:Before Start"); Scheduler.MainThreadIgnoreTimeScale.Schedule(TimeSpan.FromSeconds(5), () => logger.Debug("R:after 5 minutes")); Scheduler.MainThreadIgnoreTimeScale.Schedule(TimeSpan.FromMilliseconds(5500), () => logger.Debug("R:after 5.5 minutes")); } #if !UNITY_METRO ypos += 100; if (GUI.Button(new Rect(xpos, ypos, 100, 100), "ManagedThreadId")) { logger.Debug("Current:" + Thread.CurrentThread.ManagedThreadId); new Thread(_ => logger.Debug("NewThread:" + Thread.CurrentThread.ManagedThreadId)).Start(); ThreadPool.QueueUserWorkItem(_ => { logger.Debug("ThraedPool:" + Thread.CurrentThread.ManagedThreadId); this.transform.position = new Vector3(0, 0, 0); // exception }); } ypos += 100; if (GUI.Button(new Rect(xpos, ypos, 100, 100), "ThreadStatic")) { logger.Debug(threadstaticobj != null); new Thread(_ => logger.Debug(threadstaticobj != null)).Start(); ThreadPool.QueueUserWorkItem(_ => logger.Debug(threadstaticobj != null)); } ypos += 100; if (GUI.Button(new Rect(xpos, ypos, 100, 100), "Log")) { logger.Debug("test", this); ThreadPool.QueueUserWorkItem(_ => logger.Debug("test2", this)); } #endif ypos += 100; if (GUI.Button(new Rect(xpos, ypos, 100, 100), "POST")) { var form = new WWWForm(); form.AddField("test", "abcdefg"); ObservableWWW.PostWWW("http://localhost:53395/Handler1.ashx", form, new Hash { { "aaaa", "bbb" }, { "User-Agent", "HugaHuga" } }) .Subscribe(x => logger.Debug(x.text)); } xpos += 100; ypos = 0; if (GUI.Button(new Rect(xpos, ypos, 100, 100), "Yield")) { yieldCancel = Observable.FromCoroutineValue <string>(StringYield, false) .Subscribe(x => logger.Debug(x), ex => logger.Debug("E-x:" + ex)); } ypos += 100; if (GUI.Button(new Rect(xpos, ypos, 100, 100), "YieldCancel")) { yieldCancel.Dispose(); } ypos += 100; if (GUI.Button(new Rect(xpos, ypos, 100, 100), "ThreadPool")) { Observable.Timer(TimeSpan.FromMilliseconds(400), Scheduler.ThreadPool) .ObserveOnMainThread() .Subscribe(x => logger.Debug(x)); } ypos += 100; if (GUI.Button(new Rect(xpos, ypos, 100, 100), "Subscribe")) { subscriber.InitSubscriptions(); logger.Debug("Subscribe++ : " + subscriber.SubscriptionCount); } ypos += 100; if (GUI.Button(new Rect(xpos, ypos, 100, 100), "Push")) { Publisher.foo(); } ypos += 100; if (GUI.Button(new Rect(xpos, ypos, 100, 100), "Unsubscriber")) { subscriber.RemoveSubscriptions(); logger.Debug("UnsubscribeAll : " + subscriber.SubscriptionCount); } ypos += 100; if (GUI.Button(new Rect(xpos, ypos, 100, 100), "DistinctUntilChanged")) { new[] { "hoge", null, null, "huga", "huga", "hoge" } .ToObservable() .DistinctUntilChanged() .Subscribe(x => logger.Debug(x)); } // Time var sb = new StringBuilder(); sb.AppendLine("CaptureFramerate:" + Time.captureFramerate); sb.AppendLine("deltaTime:" + Time.deltaTime); sb.AppendLine("fixedDeltaTime:" + Time.fixedDeltaTime); sb.AppendLine("fixedTime:" + Time.fixedTime); sb.AppendLine("frameCount:" + Time.frameCount); sb.AppendLine("maximumDeltaTime:" + Time.maximumDeltaTime); sb.AppendLine("realtimeSinceStartup:" + Time.realtimeSinceStartup); sb.AppendLine("renderedFrameCount:" + Time.renderedFrameCount); sb.AppendLine("smoothDeltaTime:" + Time.smoothDeltaTime); sb.AppendLine("time:" + Time.time); sb.AppendLine("timeScale:" + Time.timeScale); sb.AppendLine("timeSinceLevelLoad:" + Time.timeSinceLevelLoad); sb.AppendLine("unscaledDeltaTime:" + Time.unscaledDeltaTime); sb.AppendLine("unscaledTime:" + Time.unscaledTime); //GUI.Box(new Rect(Screen.width - 300, Screen.height - 300, 300, 300), "Time"); //GUI.Label(new Rect(Screen.width - 290, Screen.height - 290, 290, 290), sb.ToString()); // logtext only GUI.Box(new Rect(Screen.width - 300, Screen.height - 300, 300, 300), "logtext"); GUI.Label(new Rect(Screen.width - 290, Screen.height - 290, 290, 290), logtext.ToString()); // Log //GUI.Box(new Rect(Screen.width - 300, 0, 300, 300), "Log"); //GUI.Label(new Rect(Screen.width - 290, 10, 290, 290), logtext.ToString()); }
/// <summary> /// Tests the RXWW. /// </summary> void TestRXWWW() { // var testWWW = ObservableWWW.Get ("http://bing.com/") // .Subscribe ( // x => Debug.Log (x.Substring (0, 100)), // onSuccess // ex => Debug.LogException (ex)); // #region 载图片 // var teseWPicData = ObservableWWW.GetAndGetBytes ("http://www.g58mall.com/upload/20181114/79f865acf1b04d72ad33860e6d0afe80.jpg")// // .Subscribe ( // x => { // Debug.LogFormat ("下载完成! length {0}", x.Length);//onSuccess // int tempwidth = 800; // int tempHeight = 1200; // string path = Application.dataPath + "/testPic.jpg"; // File.WriteAllBytes (path, x); // Texture2D tpTex = new Texture2D (tempwidth, tempHeight); // tpTex.LoadImage (x); // Sprite tp_sp = Sprite.Create (tpTex, new Rect (0, 0, tpTex.width, tpTex.height), Vector2.zero); // textImg.sprite = tp_sp; // Resources.UnloadUnusedAssets (); // }, // ex => { // Debug.LogException (ex); // }); #endregion #region 载音频 var teseWPicData = ObservableWWW.GetAndGetBytes("http://fjdx.sc.chinaz.com/Files/DownLoad/sound1/201811/10868.wav")// .Subscribe( x => { Debug.LogFormat("下载完成! length {0}", x.Length); //onSuccess GameObject newGo = new GameObject(); WAV tmp_wav = new WAV(x); AudioClip audioClip = AudioClip.Create("testSound", tmp_wav.SampleCount, 1, tmp_wav.Frequency, false, false); audioClip.SetData(tmp_wav.LeftChannel, 0); AudioSource player = newGo.AddComponent <AudioSource>(); player.clip = audioClip; player.Play(); Resources.UnloadUnusedAssets(); }, ex => { Debug.LogException(ex); }); #endregion // var query = from baidu in ObservableWWW.Get ("http://google.com/") // from bing in ObservableWWW.Get ("http://bing.com") // from unknow in ObservableWWW.Get (baidu + bing) // select new {baidu,bing,unknow}; // var cancel = query.Subscribe (x => Debug.Log (x)); // // //call dispose is cancel // cancel.Dispose (); }
/// <inheritdoc /> public IObservable <byte[]> GetAndGetBytes(string url, Dictionary <string, string> headers = null) { return(ObservableWWW.GetAndGetBytes(url, headers)); }
public static IObservable <JsonModel.PlayerInfo> CreatePlayerId() { return(ObservableWWW.Get(hostName + "home/create_player_id.json") .Select(text => JsonMapper.ToObject <JsonModel.PlayerInfo>(text))); }
public void UpdatePage(string page) { if (Application.internetReachability != NetworkReachability.NotReachable) { if (OnUpdateStart != null) { OnUpdateStart(); } TimeBackButtonImage.color = ScreenSelected.unChoosed; NoInternet.gameObject.SetActive(false); NoGamesText.gameObject.SetActive(false); gamesAvailable = false; Clear(); //bHtml = webSite.DownloadData(page); var observer = Observer.Create <byte[]>( x => { bHtml = x; }, ex => Debug.Log("Error"), () => { html = Encoding.UTF8.GetString(bHtml); tegs = Regex.Split(html, @"(?<=[>])"); for (int i = 0; i < tegs.Length; i++) { if (tegs[i].Contains(needID)) { needTag = i; gamesAvailable = true; } } if (gamesAvailable) { CountLast(); prefabs = new GameObject[divs.Count]; tableTags = new string[divs.Count][]; CreatePrefabs(); } else { NoGamesText.gameObject.SetActive(true); } Loading.isLoading = false; if (OnPrefabsCreated != null) { OnPrefabsCreated(); } }); ObservableWWW.GetAndGetBytes(page).Subscribe(observer); } else { NoGamesText.gameObject.SetActive(false); NoInternet.gameObject.SetActive(true); } }
public static IObservable <JsonModel.Record[]> FetchRanking() { return(ObservableWWW.Get(hostName + "home/ranking.json") .Select(text => JsonMapper.ToObject <JsonModel.Record[]>(text))); }
public static async Task <T> DownloadAsync <T>(string url) where T : class { var data = await ObservableWWW.GetAndGetBytes(url); return(data.FromBinary <T>()); }
public static void DoUpload(PackageVersion packageVersion, System.Action succeed) { EditorUtility.DisplayProgressBar("插件上传", "打包中...", 0.1f); var fileName = packageVersion.Name + "_" + packageVersion.Version + ".unitypackage"; var fullpath = PackageManagerView.ExportPaths(fileName, packageVersion.InstallPath); var file = File.ReadAllBytes(fullpath); var form = new WWWForm(); form.AddField("username", User.Username.Value); form.AddField("password", User.Password.Value); form.AddField("name", packageVersion.Name); form.AddField("version", packageVersion.Version); form.AddBinaryData("file", file); form.AddField("version", packageVersion.Version); form.AddField("releaseNote", packageVersion.Readme.content); form.AddField("installPath", packageVersion.InstallPath); form.AddField("accessRight", packageVersion.AccessRight.ToString().ToLower()); form.AddField("docUrl", packageVersion.DocUrl); if (packageVersion.Type == PackageType.FrameworkModule) { form.AddField("type", "fm"); } else if (packageVersion.Type == PackageType.Shader) { form.AddField("type", "s"); } else if (packageVersion.Type == PackageType.AppOrGameDemoOrTemplate) { form.AddField("type", "agt"); } else if (packageVersion.Type == PackageType.Plugin) { form.AddField("type", "p"); } else if (packageVersion.Type == PackageType.Master) { form.AddField("type", "master"); } Debug.Log(fullpath); EditorUtility.DisplayProgressBar("插件上传", "上传中...", 0.2f); ObservableWWW.Post(UPLOAD_URL, form, new Dictionary <string, string> { { "Authorization", "Token " + User.Token.Value } }) .Subscribe(responseContent => { EditorUtility.ClearProgressBar(); Debug.Log(responseContent); succeed.InvokeGracefully(); File.Delete(fullpath); }, e => { EditorUtility.ClearProgressBar(); EditorUtility.DisplayDialog("插件上传", "上传失败!{0}".FillFormat(e.Message), "确定"); File.Delete(fullpath); }); }
public static async Task <byte[]> DownloadAsync(string url) { var data = await ObservableWWW.GetAndGetBytes(url); return(data); }
IObservable <string> WWW() { return(ObservableWWW.Get("http://google.co.jp/")); }
private IObservable <AssetBundle> Download(string guid, string hash) { return(ObservableWWW.LoadFromCacheOrDownload(guid + "_" + hash + ".bundle", new Hash128())); }
void Start() { var refreshClickStream = refreshButton.GetComponent <Button>().onClick.AsObservable(); var close1ClickStream = close1Button.GetComponent <Button>().onClick.AsObservable(); var close2ClickStream = close2Button.GetComponent <Button>().onClick.AsObservable(); var close3ClickStream = close3Button.GetComponent <Button>().onClick.AsObservable(); var requestStream = refreshClickStream.StartWith(new Unit()). Select( t => { var randomOffset = Random.Range(1, 500); return("https://api.github.com/users?since=" + randomOffset); }); var responseStream = requestStream.SelectMany( requestUrl => { return(ObservableWWW.Get(requestUrl).Select( jsonString => { // convert jsonString to list of users as Dictionaries JSONNode root = SimpleJSON.JSON.Parse(jsonString); List <Dictionary <string, string> > listUsers = new List <Dictionary <string, string> >(); for (int i = 0; i < root.Count; i++) { Dictionary <string, string> user = new Dictionary <string, string>(); user[HTML_URL] = root[i][HTML_URL]; user[LOGIN] = root[i][LOGIN]; user[AVATAR_URL] = root[i][AVATAR_URL]; listUsers.Add(user); } return listUsers; })); }); responseStream.Subscribe( response => // onSuccess { Debug.Log("users found: " + response.Count); }, e => // onError { Debug.LogException(e); }); var suggestion1Stream = close1ClickStream. StartWith(new Unit()). CombineLatest( responseStream, (t, listUsers) => { return(listUsers[Random.Range(0, listUsers.Count)]); }) .Merge( refreshClickStream.Select( t => { Dictionary <string, string> emptyDictionary = null; return(emptyDictionary); }) ); suggestion1Stream.Subscribe( suggestion => { if (suggestion == null) { suggestion1Text.SetActive(false); } else { suggestion1Text.SetActive(true); suggestion1Text.GetComponentInChildren <Text>().text = suggestion[LOGIN]; StartCoroutine(refreshImage(userImage1, suggestion[AVATAR_URL])); } }); var suggestion2Stream = close2ClickStream. StartWith(new Unit()). CombineLatest( responseStream, (t, listUsers) => { return(listUsers[Random.Range(0, listUsers.Count)]); }) .Merge( refreshClickStream.Select( t => { Dictionary <string, string> emptyDictionary = null; return(emptyDictionary); }) ); suggestion2Stream.Subscribe( suggestion => { if (suggestion == null) { suggestion2Text.SetActive(false); } else { suggestion2Text.SetActive(true); suggestion2Text.GetComponentInChildren <Text>().text = suggestion[LOGIN]; StartCoroutine(refreshImage(userImage2, suggestion[AVATAR_URL])); } }); var suggestion3Stream = close3ClickStream. StartWith(new Unit()). CombineLatest( responseStream, (t, listUsers) => { return(listUsers[Random.Range(0, listUsers.Count)]); }) .Merge( refreshClickStream.Select( t => { Dictionary <string, string> emptyDictionary = null; return(emptyDictionary); }) ); suggestion3Stream.Subscribe( suggestion => { if (suggestion == null) { suggestion3Text.SetActive(false); } else { suggestion3Text.SetActive(true); suggestion3Text.GetComponentInChildren <Text>().text = suggestion[LOGIN]; StartCoroutine(refreshImage(userImage3, suggestion[AVATAR_URL])); } }); }