Exemple #1
0
        public static void WriteNullable(Type inner, string name, object value)
        {
            var hasValueProp = typeof(Nullable <>).MakeGenericType(inner).GetProperty("HasValue");
            var valueProp    = typeof(Nullable <>).MakeGenericType(inner).GetProperty("Value");

            var hasValue = (bool)hasValueProp.GetValue(value);

            WriteBool(name + ".exists", hasValue);
            if (hasValue)
            {
                WriterForType(inner)(name, valueProp.GetValue(value));
            }
        }
Exemple #2
0
        private static void WriteEnumerable(Type inner, string name, IEnumerable value, int originalLength)
        {
            var origLen = ReadInt(name + ".len", InvalidLen);

            if (value != null)
            {
                int i = 0;
                foreach (var item in value)
                {
                    WriterForType(inner)(name + "." + i, item);
                    i++;
                }
            }

            if (origLen != InvalidLen)
            {
                for (int i = value?.Count() ?? 0 - 1; i >= origLen; i--)
                {
                    PlayerPrefs.DeleteKey(name + "." + i);
                }
            }
        }
Exemple #3
0
 public static void Write <T>(string name, T value)
 => WriterForType(typeof(T))(name, value);