Skip to main content

Indie game storeFree gamesFun gamesHorror games
Game developmentAssetsComics
SalesBundles
Jobs
TagsGame Engines

In leaderboard we can upload user's Names but isn't there anyway to upload user's profile pics
I mean I saw a variable named Extra but when send my string (basically a base64 string converted from a sprite) but the problem is that the characters of that string are more than 700 but the allowed amount of characters of that Extra variable is 100
I have tried reducing the quality of that sprite and convert it to jpeg instead of png but still the characters are more than 100 
What should I do in this case any ideas?

You should not be storing the full sprite in string, you should create some kind of ID for a sprite in a scriptableObject or something and save that in the extras. I created a little class that helps me store data in a single string in a KvP way, hope it helps:

public class SingleStringKvP
{
    private readonly Dictionary<string, string> _kvPairs = new();
        private const char PairSeparator = ';';
    private const char KeyValueSeparator = ':';
        public SingleStringKvP(string startingValue)
    {
        Parse(startingValue);
    }
    public SingleStringKvP()
    {
    }
        public void AddValue(string key, string value)
    {
        _kvPairs[key] = value;
    }
        public string GetValue(string key)
    {
        return _kvPairs.TryGetValue(key, out var value) ? value : string.Empty;
    }
        public override string ToString()
    {
        var builder = new StringBuilder();
        foreach (var kvp in _kvPairs)
        {
            if (builder.Length > 0)
                builder.Append(PairSeparator);
            builder.Append($"{kvp.Key}{KeyValueSeparator}{kvp.Value}");
        }
        return builder.ToString();
    }
        private void Parse(string startingValue)
    {
        if (string.IsNullOrEmpty(startingValue)) return;
        var pairs = startingValue.Split(PairSeparator);
        foreach (var pair in pairs)
        {
            var kv = pair.Split(KeyValueSeparator);
            if (kv.Length == 2)
            {
                var key = kv[0];
                var value = kv[1];
                AddValue(key, value);
            }
        }
    }
}