private async Task GetSteamImage(SteamId steamId, AvatarSize size) { Steamworks.Data.Image?image; switch (size) { case AvatarSize.Small: image = await SteamFriends.GetSmallAvatarAsync(steamId); break; case AvatarSize.Medium: image = await SteamFriends.GetMediumAvatarAsync(steamId); break; case AvatarSize.Large: image = await SteamFriends.GetLargeAvatarAsync(steamId); break; default: throw new ArgumentException("Unknown Steam Avatar size!"); } if (image.HasValue) { LoadTextureFromImage(image.Value); } }
private Texture2D GetAvatar() { var getAvatarTask = SteamFriends.GetSmallAvatarAsync(steamID); getAvatarTask.Wait(); var steamworksTexture = getAvatarTask.Result.Value; var width = (int)steamworksTexture.Width; var height = (int)steamworksTexture.Height; var size = width * height; var colors = new Color32[width * width]; var texture = new Texture2D(width, height); var x = 0; var y = 0; var steamworksColor = new Steamworks.Data.Color(); for (var i = 0; i < size; i++) { x = i / width; y = i % height; steamworksColor = steamworksTexture.GetPixel(x, y); colors[i] = new Color32(steamworksColor.r, steamworksColor.g, steamworksColor.b, steamworksColor.a); } texture.SetPixels32(colors); texture.Apply(); var sprite = Sprite.Create(texture, new Rect(0, 0, width, height), Vector2.zero); return(texture); }