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()); } }