private void SaveNavigation(Memory memory)
 {
     memory.Set("navigating", navigating);
     if (navigating)
     {
         memory.Set("navigation_strategy", NavigationStrategy.ToString());
         memory.Set("navigation_steps", String.Join(",", Steps.ConvertAll(s => s.Reference).ToArray()));
         memory.Set("navigation_locks", String.Join(",", Steps.ConvertAll(s => s.LockNavigation.ToString()).ToArray()));
         memory.Set("navigation_completed", String.Join(",", Steps.ConvertAll(s => stepCompleted.ContainsKey(s) && stepCompleted[s]).ConvertAll(b => b.ToString()).ToArray()));
         memory.Set("navigation_elems_completed", String.Join(",", Steps.ConvertAll(s => completedElementsForStep.ContainsKey(s) ? completedElementsForStep[s] : 0).ConvertAll(i => i.ToString()).ToArray()));
     }
 }
 private void SaveNavigation()
 {
     PlayerPrefs.SetInt("navigating", navigating ? 1 : 0);
     if (navigating)
     {
         PlayerPrefs.SetString("navigation_strategy", NavigationStrategy.ToString());
         PlayerPrefs.SetString("navigation_steps", String.Join(",", Steps.ConvertAll(s => s.Reference).ToArray()));
         PlayerPrefs.SetString("navigation_locks", String.Join(",", Steps.ConvertAll(s => s.LockNavigation.ToString()).ToArray()));
         PlayerPrefs.SetString("navigation_completed", String.Join(",", Steps.ConvertAll(s => stepCompleted.ContainsKey(s) ? stepCompleted[s] : false).ConvertAll(b => b.ToString()).ToArray()));
         PlayerPrefs.SetString("navigation_elems_completed", String.Join(",", Steps.ConvertAll(s => completedElementsForStep.ContainsKey(s) ? completedElementsForStep[s] : 0).ConvertAll(i => i.ToString()).ToArray()));
     }
     PlayerPrefs.Save();
 }