public override void Init() { base.Init(); if (_saveMode == ConsoleVarAttribute.SaveMode.PlayerPrefs) { if (PlayerPrefsX.SupportedValueTypes.Contains(_memberType)) { if (CanGetValue() && CanSetValue()) { _saveMode = ConsoleVarAttribute.SaveMode.PlayerPrefs; _prefsKeys = "unity-x-gameconsole-var-" + DisplayName; } else { Log.Error($"ConsoleVar {DisplayName} cannot be saved in preferences because it needs to be 'gettable' and 'settable'."); } } else { Log.Error($"ConsoleVar {DisplayName} cannot be saved in preferences because it is of an unsupported save type."); } } if (_saveMode != ConsoleVarAttribute.SaveMode.NotSaved) { if (TryLoadValue(out object value)) SetValue(value); } }
public GameConsoleFieldOrProperty(MemberInfo memberInfo, Type memberType) { _memberType = memberType; ConsoleVarAttribute attribute = memberInfo.GetCustomAttribute<ConsoleVarAttribute>(); var invokeParameters = new List<Parameter>() { new Parameter(null, memberType, optional: true, hasDefaultValue: false, null) }; _saveMode = attribute.Save; Construct(memberInfo, attribute, invokeParameters); }