Пример #1
0
    private IEnumerator SetThumbnailImage(string url, RawImage image)
    {
        if (image != null)
        {
            url = VRCAPIHandler.CheckProxyUrl(url, true);
            Texture2D tex;
            tex = new Texture2D(4, 4, TextureFormat.DXT1, false);
            Debug.Log("Getting image from " + url);
            using (WWW www = new WWW(url))
            {
                yield return(www);

                Debug.Log("Got image response. Size: " + Mathf.Round(www.bytes.Length / 1000).ToString() + " KB");
                if (image != null)
                {
                    www.LoadImageIntoTexture(tex);
                    image.texture = tex;
                }
                //GetComponent<Renderer>().material.mainTexture = tex;
            }
        }
    }
Пример #2
0
    public void LoadAvatar(string avatarID, string worldId = "")
    {
        //todo: Disable ui?
        //todo: cancel button
        try
        {
            UIManager.instance.SetMainTitle("Loading avatar", "Getting avatar info...");
            StartCoroutine(VRCAPIHandler.GetAvatarInfo(avatarID, (avatarInfo) =>
            {
                if (avatarInfo.releaseStatus != "public")
                {
                    UIManager.instance.SetMainTitle(null, "This avatar is not public and cannot be viewed.");
                    return;
                }

                UIManager.instance.SetMainTitle(avatarInfo.name, "By: " + avatarInfo.authorName);
                StartCoroutine(DownloadAvatar(VRCAPIHandler.CheckProxyUrl(avatarInfo.assetUrl), () =>
                {
                    StartCoroutine(InstantiateAvatar(() =>
                    {
                        StartCoroutine(GetInformation(avatarInfo, instantiatedAvatar));
                        UIManager.instance.SetMainTitle(avatarInfo.name, "By: " + avatarInfo.authorName);
                        UIManager.instance.SetLoadedAvatarId(avatarInfo.id);

                        GameObject mouseOrbitFollow = new GameObject("MouseOrbitFollow");
                        //mouseOrbitFollow.transform.position = instantiatedAvatar.GetComponentInChildren<Renderer>().bounds.center;
                        var boundsCenter = instantiatedAvatar.GetComponentInChildren <Renderer>().bounds.center;

                        mouseOrbitFollow.transform.position = new Vector3(0f, boundsCenter.y, 0f);

                        mouseOrbit.target = mouseOrbitFollow.transform;
                        if (avatarInfo.name == null)
                        {
                            avatarInfo.name = "";
                        }
                        if (avatarInfo.authorName == null)
                        {
                            avatarInfo.authorName = "?";
                        }

                        StartCoroutine(ResetAvatarPosition());
                        WebpageUtilities.SetURLParameters(avatarInfo.id);
                        if (!string.IsNullOrEmpty(worldId))
                        {
                            Debug.Log("Getting world info...");
                            StartCoroutine(VRCAPIHandler.GetWorldInfo(worldId, (info) =>
                            {
                                Debug.Log("From world " + info.name);
                                //avatarInfo.authorName += "\r\n" + "From world: " + info.name;
                                UIManager.instance.SetMainTitle(avatarInfo.name, "By: " + avatarInfo.authorName + "\r\n" + "From world: " + info.name);
                            }));
                        }
                        //todo: enable UI
                    }));
                }));
            }, (error) =>
            {
                UIManager.instance.SetMainTitle(null, "Error");
            }));
        }
        catch (Exception e)
        {
            Debug.Log(e.ToString());
        }
    }