45 lines
1.4 KiB
C#
45 lines
1.4 KiB
C#
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;
|
|
}
|
|
} |