using Code.Game.Gameplay.Player; using Code.Infrastructure.SceneLoader; using KinematicCharacterController; using UnityEngine; using UnityEngine.SceneManagement; namespace Code.Game.OfficeGame.Location { // TODO Position saving when auto timer\saving game\quitting public class PlayerLocationManager { private ISceneLoader _sceneLoader; public PlayerLocationManager(ISceneLoader sceneLoader, KinematicCharacterMotor kinematicCharacterController) { _sceneLoader = sceneLoader; // TODO SaveLoadObey PlayerLastPositionData PlayerLastPositionData playerLastPositionData = new PlayerLastPositionData() { Position = Vector3.zero, Rotation = Quaternion.identity, LocationID = LocationIDs.TestOffice }; _sceneLoader.LoadSceneAsync( (SceneId)(int)playerLastPositionData.LocationID, LoadSceneMode.Additive, false); kinematicCharacterController.SetPositionAndRotation ( playerLastPositionData.Position, playerLastPositionData.Rotation ); } } public struct PlayerLastPositionData { public Vector3 Position; public Quaternion Rotation; public LocationIDs LocationID; } }