Exemple #1
0
 public override void Awake()
 {
     base.Awake();
     if (m_multiscene)
     {
         m_multisceneData = new MultiscenePositionData();
     }
     else
     {
         m_data = new PositionData();
     }
     m_navMeshAgent = GetComponent <NavMeshAgent>();
 }
Exemple #2
0
 public override void ApplyData(string s)
 {
     if (usePlayerSpawnpoint && SaveSystem.playerSpawnpoint != null)
     {
         SetPosition(SaveSystem.playerSpawnpoint.transform.position, SaveSystem.playerSpawnpoint.transform.rotation);
     }
     else if (!string.IsNullOrEmpty(s))
     {
         var currentScene = SceneManager.GetActiveScene().buildIndex;
         if (multiscene)
         {
             var multisceneData = SaveSystem.Deserialize <MultiscenePositionData>(s, m_multisceneData);
             if (multisceneData == null)
             {
                 return;
             }
             m_multisceneData = multisceneData;
             for (int i = 0; i < m_multisceneData.positions.Count; i++)
             {
                 if (m_multisceneData.positions[i].scene == currentScene)
                 {
                     SetPosition(m_multisceneData.positions[i].position, m_multisceneData.positions[i].rotation);
                     break;
                 }
             }
         }
         else
         {
             var data = SaveSystem.Deserialize <PositionData>(s, m_data);
             if (data == null)
             {
                 return;
             }
             m_data = data;
             if (data.scene == currentScene || data.scene == -1)
             {
                 SetPosition(data.position, data.rotation);
             }
         }
     }
 }