Refactor: Managers to systems

This commit is contained in:
Vova
2023-12-11 14:17:52 +02:00
parent ea59babf93
commit 4e0787287b
14 changed files with 180 additions and 7797 deletions
+73 -4
View File
@@ -11,6 +11,8 @@ GameObject:
- component: {fileID: 3284961431740112560} - component: {fileID: 3284961431740112560}
- component: {fileID: 3284961431740112563} - component: {fileID: 3284961431740112563}
- component: {fileID: 3284961431740112562} - component: {fileID: 3284961431740112562}
- component: {fileID: 6434834345686826594}
- component: {fileID: 3658533965490984325}
m_Layer: 0 m_Layer: 0
m_Name: Player m_Name: Player
m_TagString: Player m_TagString: Player
@@ -25,6 +27,7 @@ Transform:
m_PrefabInstance: {fileID: 0} m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0} m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 3284961431740112554} m_GameObject: {fileID: 3284961431740112554}
serializedVersion: 2
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1} m_LocalScale: {x: 1, y: 1, z: 1}
@@ -32,7 +35,6 @@ Transform:
m_Children: m_Children:
- {fileID: 3034368942645999326} - {fileID: 3034368942645999326}
m_Father: {fileID: 0} m_Father: {fileID: 0}
m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!195 &3284961431740112563 --- !u!195 &3284961431740112563
NavMeshAgent: NavMeshAgent:
@@ -71,6 +73,56 @@ MonoBehaviour:
_navAgent: {fileID: 3284961431740112563} _navAgent: {fileID: 3284961431740112563}
_animator: {fileID: 3284961433283168241} _animator: {fileID: 3284961433283168241}
_holdPoint: {fileID: 3284961432807806020} _holdPoint: {fileID: 3284961432807806020}
--- !u!136 &6434834345686826594
CapsuleCollider:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 3284961431740112554}
m_Material: {fileID: 0}
m_IncludeLayers:
serializedVersion: 2
m_Bits: 0
m_ExcludeLayers:
serializedVersion: 2
m_Bits: 0
m_LayerOverridePriority: 0
m_IsTrigger: 0
m_ProvidesContacts: 0
m_Enabled: 1
serializedVersion: 2
m_Radius: 0.38
m_Height: 1.8
m_Direction: 1
m_Center: {x: 0, y: 0.95, z: 0}
--- !u!54 &3658533965490984325
Rigidbody:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 3284961431740112554}
serializedVersion: 4
m_Mass: 0.0000001
m_Drag: 0
m_AngularDrag: 0
m_CenterOfMass: {x: 0, y: 0, z: 0}
m_InertiaTensor: {x: 1, y: 1, z: 1}
m_InertiaRotation: {x: 0, y: 0, z: 0, w: 1}
m_IncludeLayers:
serializedVersion: 2
m_Bits: 0
m_ExcludeLayers:
serializedVersion: 2
m_Bits: 0
m_ImplicitCom: 1
m_ImplicitTensor: 1
m_UseGravity: 0
m_IsKinematic: 0
m_Interpolate: 0
m_Constraints: 0
m_CollisionDetection: 0
--- !u!1 &3284961432807806021 --- !u!1 &3284961432807806021
GameObject: GameObject:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
@@ -94,13 +146,13 @@ Transform:
m_PrefabInstance: {fileID: 0} m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0} m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 3284961432807806021} m_GameObject: {fileID: 3284961432807806021}
serializedVersion: 2
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0.12, z: 0.0384} m_LocalPosition: {x: 0, y: 0.12, z: 0.0384}
m_LocalScale: {x: 1, y: 1, z: 1} m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0 m_ConstrainProportionsScale: 0
m_Children: [] m_Children: []
m_Father: {fileID: 3756894681279164157} m_Father: {fileID: 3756894681279164157}
m_RootOrder: -1
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!1001 &3284961431633072437 --- !u!1001 &3284961431633072437
PrefabInstance: PrefabInstance:
@@ -138,7 +190,7 @@ PrefabInstance:
- target: {fileID: -8679921383154817045, guid: 32790d47acc86814982f18993097a759, - target: {fileID: -8679921383154817045, guid: 32790d47acc86814982f18993097a759,
type: 3} type: 3}
propertyPath: m_LocalPosition.y propertyPath: m_LocalPosition.y
value: 0.15 value: 0.1
objectReference: {fileID: 0} objectReference: {fileID: 0}
- target: {fileID: -8679921383154817045, guid: 32790d47acc86814982f18993097a759, - target: {fileID: -8679921383154817045, guid: 32790d47acc86814982f18993097a759,
type: 3} type: 3}
@@ -977,6 +1029,10 @@ PrefabInstance:
type: 3} type: 3}
insertIndex: -1 insertIndex: -1
addedObject: {fileID: 3284961433283168241} addedObject: {fileID: 3284961433283168241}
- targetCorrespondingSourceObject: {fileID: 919132149155446097, guid: 32790d47acc86814982f18993097a759,
type: 3}
insertIndex: -1
addedObject: {fileID: 3624213172115043560}
m_SourcePrefab: {fileID: 100100000, guid: 32790d47acc86814982f18993097a759, type: 3} m_SourcePrefab: {fileID: 100100000, guid: 32790d47acc86814982f18993097a759, type: 3}
--- !u!1 &2402651526520908900 stripped --- !u!1 &2402651526520908900 stripped
GameObject: GameObject:
@@ -986,7 +1042,7 @@ GameObject:
m_PrefabAsset: {fileID: 0} m_PrefabAsset: {fileID: 0}
--- !u!95 &3284961433283168241 --- !u!95 &3284961433283168241
Animator: Animator:
serializedVersion: 5 serializedVersion: 7
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0} m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0} m_PrefabInstance: {fileID: 0}
@@ -1000,11 +1056,24 @@ Animator:
m_ApplyRootMotion: 0 m_ApplyRootMotion: 0
m_LinearVelocityBlending: 0 m_LinearVelocityBlending: 0
m_StabilizeFeet: 0 m_StabilizeFeet: 0
m_AnimatePhysics: 0
m_WarningMessage: m_WarningMessage:
m_HasTransformHierarchy: 1 m_HasTransformHierarchy: 1
m_AllowConstantClipSamplingOptimization: 1 m_AllowConstantClipSamplingOptimization: 1
m_KeepAnimatorStateOnDisable: 0 m_KeepAnimatorStateOnDisable: 0
m_WriteDefaultValuesOnDisable: 0 m_WriteDefaultValuesOnDisable: 0
--- !u!114 &3624213172115043560
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2402651526520908900}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: cf9ddd6d77ff9a7479edaeb2c8ae1078, type: 3}
m_Name:
m_EditorClassIdentifier:
--- !u!4 &3034368942645999326 stripped --- !u!4 &3034368942645999326 stripped
Transform: Transform:
m_CorrespondingSourceObject: {fileID: -8679921383154817045, guid: 32790d47acc86814982f18993097a759, m_CorrespondingSourceObject: {fileID: -8679921383154817045, guid: 32790d47acc86814982f18993097a759,
-47
View File
@@ -1,47 +0,0 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!1 &9142730712074959057
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 9142730712074959070}
- component: {fileID: 9142730712074959071}
m_Layer: 0
m_Name: SpawnManager
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!4 &9142730712074959070
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 9142730712074959057}
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0.49744928, y: 4.747728, z: 0.4416956}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 0}
m_RootOrder: -1
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!114 &9142730712074959071
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 9142730712074959057}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: cbd507d46c2bcc940b91fc92a2dfe513, type: 3}
m_Name:
m_EditorClassIdentifier:
DefaultPlayer: {fileID: 0}
@@ -1,6 +1,7 @@
fileFormatVersion: 2 fileFormatVersion: 2
guid: 8939548f67eb43c4fa321f112c45f83b guid: 165dea616922a1248b1f12fd60dda3cf
PrefabImporter: folderAsset: yes
DefaultImporter:
externalObjects: {} externalObjects: {}
userData: userData:
assetBundleName: assetBundleName:
File diff suppressed because it is too large Load Diff
@@ -1,5 +1,5 @@
fileFormatVersion: 2 fileFormatVersion: 2
guid: 7532f144834b4d24ab75d734dfdaf51d guid: 05825b10619552142868e4f61682af73
PrefabImporter: PrefabImporter:
externalObjects: {} externalObjects: {}
userData: userData:
File diff suppressed because it is too large Load Diff
+4
View File
@@ -4,6 +4,10 @@ using UnityEngine.InputSystem;
public class CameraSystem : MonoBehaviour public class CameraSystem : MonoBehaviour
{ {
[SerializeField]
private Camera _mainCamera;
public Camera MainCamera => _mainCamera;
[SerializeField] [SerializeField]
private CinemachineVirtualCamera _camera; private CinemachineVirtualCamera _camera;
[SerializeField] [SerializeField]
+7 -2
View File
@@ -1,12 +1,15 @@
using UnityEngine; using UnityEngine;
using UnityEngine.InputSystem;
public class GameManager : MonoBehaviour public class GameManager : MonoBehaviour
{ {
[SerializeField]
private CameraSystem _cameraSystem;
private bool _isPause; private bool _isPause;
private InputSystem _inputSystem; private InputSystem _inputSystem;
private SceneManager _sceneManager; private SceneManager _sceneManager;
private TimeSystem _timeSystem; private TimeSystem _timeSystem;
private InGameMouseHandler _gameMouseHandler;
public InputSystem Input => _inputSystem; public InputSystem Input => _inputSystem;
public SceneManager Scene => _sceneManager; public SceneManager Scene => _sceneManager;
@@ -26,7 +29,7 @@ public class GameManager : MonoBehaviour
_inputSystem = new InputSystem(); _inputSystem = new InputSystem();
_sceneManager = new SceneManager(); _sceneManager = new SceneManager();
_timeSystem = new TimeSystem(); _timeSystem = new TimeSystem();
_gameMouseHandler = new InGameMouseHandler(_cameraSystem.MainCamera);
} }
private void OnEnable() private void OnEnable()
{ {
@@ -34,6 +37,7 @@ public class GameManager : MonoBehaviour
} }
private void OnDisable() private void OnDisable()
{ {
_gameMouseHandler.Dispose();
_inputSystem.Disable(); _inputSystem.Disable();
} }
@@ -51,6 +55,7 @@ public class GameManager : MonoBehaviour
{ {
if (!_isPause) if (!_isPause)
{ {
_gameMouseHandler.Update();
_timeSystem.UpdateTime(); _timeSystem.UpdateTime();
} }
} }
+14 -14
View File
@@ -3,31 +3,34 @@ using UnityEngine;
using UnityEngine.EventSystems; using UnityEngine.EventSystems;
using UnityEngine.InputSystem; using UnityEngine.InputSystem;
public class InGameMouseHandler : MonoBehaviour public class InGameMouseHandler:UnityEngine.Object
{ {
[SerializeField]
private LayerMask _selectableLayerMask; private LayerMask _selectableLayerMask;
[SerializeField]
private LayerMask _walkableLayerMask; private LayerMask _walkableLayerMask;
[SerializeField]
private WaypointVisual _waypointVisual; private WaypointVisual _waypointVisual;
[SerializeField]
private Camera _camera;
private Ray _ray; private Ray _ray;
private Camera _camera;
public static event EventHandler<OnSelectedObjectChangedEventArgs> OnSelectedObjectChanged; public static event EventHandler<OnSelectedObjectChangedEventArgs> OnSelectedObjectChanged;
private BaseInteractableObject _selectedObject; private BaseInteractableObject _selectedObject;
private void Start() public InGameMouseHandler(Camera camera)
{ {
_camera = camera;
_selectableLayerMask =LayerMask.NameToLayer("Selectable");
_walkableLayerMask = LayerMask.NameToLayer("Walking");
var waypointPrefab = Resources.Load("WayPointSign", typeof(WaypointVisual)) as WaypointVisual;
_waypointVisual =Instantiate(waypointPrefab);
GameManager.Instance.Input.PlayerAction.PointClick.performed += ClickToMove; GameManager.Instance.Input.PlayerAction.PointClick.performed += ClickToMove;
} }
private void OnDestroy() public void Dispose()
{ {
GameManager.Instance.Input.PlayerAction.PointClick.performed += ClickToMove; GameManager.Instance.Input.PlayerAction.PointClick.performed += ClickToMove;
} }
@@ -38,7 +41,6 @@ public class InGameMouseHandler : MonoBehaviour
{ {
if (_selectedObject != null) if (_selectedObject != null)
{ {
print($"Go to interaction point {_selectedObject._interactionPoint.position}");
_waypointVisual.SetWaypoint(_selectedObject._interactionPoint.position); _waypointVisual.SetWaypoint(_selectedObject._interactionPoint.position);
Player.Instance.AddTask(new PlayerTasks(Tasks.Interact, _selectedObject)); Player.Instance.AddTask(new PlayerTasks(Tasks.Interact, _selectedObject));
} }
@@ -46,7 +48,6 @@ public class InGameMouseHandler : MonoBehaviour
{ {
if (Physics.Raycast(_ray, out RaycastHit hit, 100f, _walkableLayerMask)) if (Physics.Raycast(_ray, out RaycastHit hit, 100f, _walkableLayerMask))
{ {
print($"hit point {hit.point} collider pos {hit.collider.transform.position}");
_waypointVisual.SetWaypoint(hit.point); _waypointVisual.SetWaypoint(hit.point);
Player.Instance.AddTask(new PlayerTasks(Tasks.Move, _waypointVisual)); Player.Instance.AddTask(new PlayerTasks(Tasks.Move, _waypointVisual));
} }
@@ -54,7 +55,7 @@ public class InGameMouseHandler : MonoBehaviour
} }
} }
void Update() public void Update()
{ {
_ray = _camera.ScreenPointToRay(Mouse.current.position.ReadValue()); _ray = _camera.ScreenPointToRay(Mouse.current.position.ReadValue());
if(EventSystem.current.IsPointerOverGameObject()) if(EventSystem.current.IsPointerOverGameObject())
@@ -77,7 +78,6 @@ public class InGameMouseHandler : MonoBehaviour
else else
{ {
OnSelectedObjectChanged?.Invoke(this, new OnSelectedObjectChangedEventArgs() { SelectedObject = null }); OnSelectedObjectChanged?.Invoke(this, new OnSelectedObjectChangedEventArgs() { SelectedObject = null });
} }
} }
} }
@@ -1,11 +1,2 @@
fileFormatVersion: 2 fileFormatVersion: 2
guid: dcf28888027a4ab4ba2df2a33b89899e guid: dcf28888027a4ab4ba2df2a33b89899e
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:
+1 -10
View File
@@ -1,11 +1,2 @@
fileFormatVersion: 2 fileFormatVersion: 2
guid: fbda389b6a6aec14997efc4be22664e7 guid: fbda389b6a6aec14997efc4be22664e7
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:
-3
View File
@@ -9,12 +9,9 @@ public class TimeSystem
public Action OnMinuteChanged; public Action OnMinuteChanged;
public Action OnFastForwardEnd; public Action OnFastForwardEnd;
[SerializeField]
private TimeSpan _startTime = new TimeSpan(1, 08, 00, 00); private TimeSpan _startTime = new TimeSpan(1, 08, 00, 00);
[SerializeField]
private float _sunriseHour; private float _sunriseHour;
[SerializeField]
private float _sunsetHour; private float _sunsetHour;
private TimeSpan _sunriseTime; private TimeSpan _sunriseTime;
+1 -10
View File
@@ -1,11 +1,2 @@
fileFormatVersion: 2 fileFormatVersion: 2
guid: 00bbfcf5f7cdbb543bd6e09cd773f199 guid: 00bbfcf5f7cdbb543bd6e09cd773f199
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:
+1 -10
View File
@@ -1,11 +1,2 @@
fileFormatVersion: 2 fileFormatVersion: 2
guid: a49cd67cb3095a74d9b654426bc046b6 guid: a49cd67cb3095a74d9b654426bc046b6
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant: