Esempio n. 1
0
 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));
 }
Esempio n. 2
0
        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);
            });
        }
Esempio n. 5
0
 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);
    }
Esempio n. 7
0
 /// <inheritdoc />
 public IObservable <string> Get(string url, Dictionary <string, string> headers = null)
 {
     return(ObservableWWW.Get(url, headers));
 }
Esempio n. 8
0
 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));
 }
Esempio n. 9
0
 public virtual IObservable <WWW> Load(string path)
 {
     return(ObservableWWW.GetWWW(path));
 }
Esempio n. 10
0
 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));
 }
Esempio n. 11
0
 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));
 }
Esempio n. 12
0
 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));
 }
Esempio n. 13
0
 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));
 }
Esempio n. 14
0
 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);
    }
Esempio n. 17
0
    // 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();
    }
Esempio n. 18
0
 public IObservable <WWW[]> LoadFile(string url)
 {
     return(Observable.WhenAll(ObservableWWW.GetWWW(url)));
 }
Esempio n. 19
0
        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());
        }
Esempio n. 20
0
        /// <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 ();
        }
Esempio n. 21
0
 /// <inheritdoc />
 public IObservable <byte[]> GetAndGetBytes(string url, Dictionary <string, string> headers = null)
 {
     return(ObservableWWW.GetAndGetBytes(url, headers));
 }
Esempio n. 22
0
 public static IObservable <JsonModel.PlayerInfo> CreatePlayerId()
 {
     return(ObservableWWW.Get(hostName + "home/create_player_id.json")
            .Select(text => JsonMapper.ToObject <JsonModel.PlayerInfo>(text)));
 }
Esempio n. 23
0
    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);
        }
    }
Esempio n. 24
0
 public static IObservable <JsonModel.Record[]> FetchRanking()
 {
     return(ObservableWWW.Get(hostName + "home/ranking.json")
            .Select(text => JsonMapper.ToObject <JsonModel.Record[]>(text)));
 }
Esempio n. 25
0
        public static async Task <T> DownloadAsync <T>(string url) where T : class
        {
            var data = await ObservableWWW.GetAndGetBytes(url);

            return(data.FromBinary <T>());
        }
Esempio n. 26
0
        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);
            });
        }
Esempio n. 27
0
        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/"));
 }
Esempio n. 29
0
 private IObservable <AssetBundle> Download(string guid, string hash)
 {
     return(ObservableWWW.LoadFromCacheOrDownload(guid + "_" + hash + ".bundle", new Hash128()));
 }
Esempio n. 30
0
    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]));
            }
        });
    }