public override void OnEnter() { for (int i = 0; i < keys.Length; i++) { if (!keys[i].IsNone || !keys[i].Value.Equals("")) { string key = keys[i].Value; FsmVar fsmVar = values[i]; string _name = fsmVar.variableName; switch (fsmVar.Type) { case VariableType.Int: this.Fsm.Variables.GetFsmInt(_name).Value = PlayerPrefs.GetInt(key); break; case VariableType.Float: this.Fsm.Variables.GetFsmFloat(_name).Value = PlayerPrefs.GetFloat(key); break; case VariableType.Bool: this.Fsm.Variables.GetFsmBool(_name).Value = PlayerPrefsX.GetBool(key); break; case VariableType.Color: this.Fsm.Variables.GetFsmColor(_name).Value = PlayerPrefsX.GetColor(key); break; case VariableType.Quaternion: this.Fsm.Variables.GetFsmQuaternion(_name).Value = PlayerPrefsX.GetQuaternion(key); break; case VariableType.Rect: this.Fsm.Variables.GetFsmRect(_name).Value = PlayerPrefsX.GetRect(key); break; case VariableType.Vector2: this.Fsm.Variables.GetFsmVector2(_name).Value = PlayerPrefsX.GetVector2(key); break; case VariableType.Vector3: this.Fsm.Variables.GetFsmVector3(_name).Value = PlayerPrefsX.GetVector3(key); break; case VariableType.String: this.Fsm.Variables.GetFsmString(_name).Value = PlayerPrefs.GetString(key); break; default: LogError("PlayerPrefsx does not support saving " + fsmVar.Type); break; } } } Finish(); }