Files
Hasebe/Assets/Code/OfficeGame/Location/PlayerLocationManager.cs
T
2026-09-25 16:27:22 +03:00

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;
}
}