Files
DougDiggem/Assets/Scripts/Management/PlayerManager.cs
T

42 lines
1.4 KiB
C#

using UnityEngine;
using UnityEngine.SceneManagement;
// Handles scene-persistent player data
public class PlayerManager : MonoBehaviour
{
public int CurrentToolIndex;
#region Player Data Save/Load
public void SavePlayerData(ref PlayerSaveData data)
{
data.activeToolIndex = GameManager.Instance.PlayerManager.CurrentToolIndex;
data.camRotation = GameManager.Instance.PlayerController.cameraController.camTargetRotation;
data.dougPosition = GameManager.Instance.PlayerController.transform.position;
data.currentScene = SceneManager.GetActiveScene().name;
}
public void LoadPlayerData(PlayerSaveData data)
{
if (data.currentScene != null && data.currentScene != SceneManager.GetActiveScene().name)
{
GameManager.Instance.GoToMapPoint(new MapPoint(data.currentScene, data.dougPosition), true);
}
else
{
GameManager.Instance.PlayerManager.CurrentToolIndex = data.activeToolIndex;
GameManager.Instance.PlayerController.cameraController.SnapToRotation(data.camRotation);
GameManager.Instance.PlayerController.transform.position = data.dougPosition;
}
}
#endregion
}
[System.Serializable]
public struct PlayerSaveData
{
public int activeToolIndex;
public float camRotation;
public Vector3 dougPosition;
public string currentScene;
}