public override void Awake() { base.Awake(); if (m_multiscene) { m_multisceneData = new MultiscenePositionData(); } else { m_data = new PositionData(); } m_navMeshAgent = GetComponent <NavMeshAgent>(); }
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); } } } }