예제 #1
0
        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);
            }
        }
예제 #2
0
        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);
        }