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();
        }