From f9a3b06ec37f5b9e18b1c6a89fa972fbb20116a5 Mon Sep 17 00:00:00 2001 From: Krazerleo Date: Sat, 7 May 2022 22:02:15 +0700 Subject: [PATCH] files add --- Assets/Prefabs/Bot.prefab | 237 +++++++++++------- Assets/Prefabs/Player.prefab | 150 ++++++----- .../Scripts/Character/MovementController.cs | 21 +- Assets/Scripts/Character/NPC.cs | 26 +- Assets/Scripts/Managers/GameManager.cs | 1 - Assets/Scripts/Managers/MapManager.cs | 30 +-- .../Statistics/StatisticManager.cs.meta | 2 +- Assets/Settings/Game Settings.asset | 27 -- 8 files changed, 281 insertions(+), 213 deletions(-) diff --git a/Assets/Prefabs/Bot.prefab b/Assets/Prefabs/Bot.prefab index 0af3f18..5b177e0 100755 --- a/Assets/Prefabs/Bot.prefab +++ b/Assets/Prefabs/Bot.prefab @@ -1,6 +1,6 @@ %YAML 1.1 %TAG !u! tag:unity3d.com,2011: ---- !u!1 &2988578997639256874 +--- !u!1 &6171680323407988095 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -8,52 +8,85 @@ GameObject: m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - - component: {fileID: 2988578997639256870} - - component: {fileID: 2988578997639256869} - - component: {fileID: 2988578997639256868} - - component: {fileID: 2988578997639256875} - - component: {fileID: 5447337162552783061} - - component: {fileID: 7805954453358028498} - - component: {fileID: 2676446634235362783} - - component: {fileID: 8656710265340117963} - - component: {fileID: 778652956973742106} - - component: {fileID: 1208561866453126566} - m_Layer: 0 - m_Name: Bot + - component: {fileID: 6171680323407988094} + m_Layer: 8 + m_Name: FeetTransform m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 1 ---- !u!4 &2988578997639256870 +--- !u!4 &6171680323407988094 Transform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2988578997639256874} + m_GameObject: {fileID: 6171680323407988095} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 28.310326, y: 13.98, z: 46.45} + m_LocalPosition: {x: 0, y: -1, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} m_Children: [] - m_Father: {fileID: 0} + m_Father: {fileID: 6171680323948707550} m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!33 &2988578997639256869 +--- !u!1 &6171680323948707524 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 6171680323948707550} + - component: {fileID: 6171680323948707551} + - component: {fileID: 5770895893828047079} + - component: {fileID: 6171680323948707521} + - component: {fileID: 6171680323948707549} + - component: {fileID: 6171680323948707520} + - component: {fileID: 8774702625908438859} + - component: {fileID: 6521536090983603910} + - component: {fileID: 6133354754598649724} + - component: {fileID: 2756943273076691504} + - component: {fileID: 6638271233700792696} + - component: {fileID: 5988018701276467001} + m_Layer: 8 + m_Name: Bot + m_TagString: Defender + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &6171680323948707550 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6171680323948707524} + m_LocalRotation: {x: 0, y: 0.7071068, z: 0, w: 0.7071068} + m_LocalPosition: {x: 50.67923, y: 1.16, z: -22.57} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 6171680323407988094} + m_Father: {fileID: 0} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 90, z: 0} +--- !u!33 &6171680323948707551 MeshFilter: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2988578997639256874} + m_GameObject: {fileID: 6171680323948707524} m_Mesh: {fileID: 10208, guid: 0000000000000000e000000000000000, type: 0} ---- !u!23 &2988578997639256868 +--- !u!23 &5770895893828047079 MeshRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2988578997639256874} + m_GameObject: {fileID: 6171680323948707524} m_Enabled: 1 m_CastShadows: 1 m_ReceiveShadows: 1 @@ -86,94 +119,58 @@ MeshRenderer: m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 ---- !u!136 &2988578997639256875 +--- !u!136 &6171680323948707521 CapsuleCollider: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2988578997639256874} + m_GameObject: {fileID: 6171680323948707524} m_Material: {fileID: 0} m_IsTrigger: 0 - m_Enabled: 1 - m_Radius: 0.5 + m_Enabled: 0 + m_Radius: 0.3 m_Height: 2 m_Direction: 1 m_Center: {x: 0, y: 0, z: 0} ---- !u!114 &5447337162552783061 -MonoBehaviour: +--- !u!136 &6171680323948707549 +CapsuleCollider: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2988578997639256874} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: a6f2a081cfc8c4b4bb6864331109d147, type: 3} - m_Name: - m_EditorClassIdentifier: - agentParameters: - maxStep: 0 - hasUpgradedFromAgentParameters: 1 - MaxStep: 100 ---- !u!114 &7805954453358028498 -MonoBehaviour: + m_GameObject: {fileID: 6171680323948707524} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 0 + m_Radius: 0.3 + m_Height: 1.3 + m_Direction: 1 + m_Center: {x: 0, y: -0.35, z: 0} +--- !u!136 &6171680323948707520 +CapsuleCollider: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2988578997639256874} + m_GameObject: {fileID: 6171680323948707524} + m_Material: {fileID: 0} + m_IsTrigger: 0 m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 3a5c9d521e5ef4759a8246a07d52221e, type: 3} - m_Name: - m_EditorClassIdentifier: - DecisionPeriod: 1 - TakeActionsBetweenDecisions: 1 ---- !u!114 &2676446634235362783 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2988578997639256874} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 5d1c4e0b1822b495aa52bc52839ecb30, type: 3} - m_Name: - m_EditorClassIdentifier: - m_BrainParameters: -<<<<<<< HEAD - VectorObservationSize: 9 -======= - VectorObservationSize: 4 ->>>>>>> 351fa8ee12c499a0374be71a192a5f288611f467 - NumStackedVectorObservations: 1 - m_ActionSpec: - m_NumContinuousActions: 0 - BranchSizes: 0200000002000000 - VectorActionSize: 0200000002000000 - VectorActionDescriptions: [] - VectorActionSpaceType: 0 - hasUpgradedBrainParametersWithActionSpec: 1 - m_Model: {fileID: 0} - m_InferenceDevice: 0 - m_BehaviorType: 0 - m_BehaviorName: npc - TeamId: 0 - m_UseChildSensors: 1 - m_UseChildActuators: 1 - m_ObservableAttributeHandling: 0 ---- !u!195 &8656710265340117963 + m_Radius: 0.3 + m_Height: 0.8 + m_Direction: 1 + m_Center: {x: 0, y: -0.6, z: 0} +--- !u!195 &8774702625908438859 NavMeshAgent: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2988578997639256874} + m_GameObject: {fileID: 6171680323948707524} m_Enabled: 1 m_AgentTypeID: 0 - m_Radius: 0.5 + m_Radius: 0.5000001 m_Speed: 3.5 m_Acceleration: 8 avoidancePriority: 50 @@ -186,32 +183,92 @@ NavMeshAgent: m_BaseOffset: 1 m_WalkableMask: 4294967295 m_ObstacleAvoidanceType: 4 ---- !u!114 &778652956973742106 +--- !u!114 &6521536090983603910 MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2988578997639256874} + m_GameObject: {fileID: 6171680323948707524} m_Enabled: 1 m_EditorHideFlags: 0 m_Script: {fileID: 11500000, guid: d3ebcf807a37f344998fd648dfc9376d, type: 3} m_Name: m_EditorClassIdentifier: - navMeshAgent: {fileID: 8656710265340117963} + navMeshAgent: {fileID: 8774702625908438859} flag: {fileID: 6818223691859422291, guid: 1685c1d9ce4ab174f95c646b1826010b, type: 3} ---- !u!114 &1208561866453126566 +--- !u!114 &6133354754598649724 MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2988578997639256874} + m_GameObject: {fileID: 6171680323948707524} m_Enabled: 1 m_EditorHideFlags: 0 m_Script: {fileID: 11500000, guid: dd8012d5925524537b27131fef517017, type: 3} m_Name: m_EditorClassIdentifier: m_SensorName: BufferSensor - m_ObservableSize: 5 - m_MaxNumObservables: 5 + m_ObservableSize: 0 + m_MaxNumObservables: 0 +--- !u!114 &2756943273076691504 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6171680323948707524} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5d1c4e0b1822b495aa52bc52839ecb30, type: 3} + m_Name: + m_EditorClassIdentifier: + m_BrainParameters: + VectorObservationSize: 1 + NumStackedVectorObservations: 1 + m_ActionSpec: + m_NumContinuousActions: 0 + BranchSizes: 01000000 + VectorActionSize: 01000000 + VectorActionDescriptions: [] + VectorActionSpaceType: 0 + hasUpgradedBrainParametersWithActionSpec: 1 + m_Model: {fileID: 0} + m_InferenceDevice: 0 + m_BehaviorType: 0 + m_BehaviorName: My Behavior + TeamId: 0 + m_UseChildSensors: 1 + m_UseChildActuators: 1 + m_ObservableAttributeHandling: 0 +--- !u!114 &6638271233700792696 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6171680323948707524} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: a6f2a081cfc8c4b4bb6864331109d147, type: 3} + m_Name: + m_EditorClassIdentifier: + agentParameters: + maxStep: 0 + hasUpgradedFromAgentParameters: 1 + MaxStep: 100 +--- !u!114 &5988018701276467001 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6171680323948707524} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d3ebcf807a37f344998fd648dfc9376d, type: 3} + m_Name: + m_EditorClassIdentifier: + navMeshAgent: {fileID: 8774702625908438859} + flag: {fileID: 6818223691859422291, guid: 1685c1d9ce4ab174f95c646b1826010b, type: 3} diff --git a/Assets/Prefabs/Player.prefab b/Assets/Prefabs/Player.prefab index c798d61..31319fc 100755 --- a/Assets/Prefabs/Player.prefab +++ b/Assets/Prefabs/Player.prefab @@ -14,9 +14,12 @@ GameObject: - component: {fileID: 5245491127989480120} - component: {fileID: 5245491127989480100} - component: {fileID: 5245491127989480121} - - component: {fileID: 5245491127989480123} - - component: {fileID: 5245491127989480122} - - component: {fileID: 4890899368932544690} + - component: {fileID: 7254047075221496626} + - component: {fileID: 5182704636738128575} + - component: {fileID: 5220658550450318085} + - component: {fileID: 4264677542023120457} + - component: {fileID: 4715950961444674817} + - component: {fileID: 5653209015090846528} m_Layer: 8 m_Name: Player m_TagString: Defender @@ -129,25 +132,29 @@ CapsuleCollider: m_Height: 0.8 m_Direction: 1 m_Center: {x: 0, y: -0.6, z: 0} ---- !u!143 &5245491127989480123 -CharacterController: +--- !u!195 &7254047075221496626 +NavMeshAgent: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 5245491127989480125} - m_Material: {fileID: 0} - m_IsTrigger: 0 m_Enabled: 1 - serializedVersion: 2 + m_AgentTypeID: 0 + m_Radius: 0.5000001 + m_Speed: 3.5 + m_Acceleration: 8 + avoidancePriority: 50 + m_AngularSpeed: 120 + m_StoppingDistance: 0 + m_AutoTraverseOffMeshLink: 1 + m_AutoBraking: 1 + m_AutoRepath: 1 m_Height: 2 - m_Radius: 0.5 - m_SlopeLimit: 45 - m_StepOffset: 0.3 - m_SkinWidth: 0.08 - m_MinMoveDistance: 0.001 - m_Center: {x: 0, y: 0, z: 0} ---- !u!114 &5245491127989480122 + m_BaseOffset: 1 + m_WalkableMask: 4294967295 + m_ObstacleAvoidanceType: 4 +--- !u!114 &5182704636738128575 MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -156,52 +163,12 @@ MonoBehaviour: m_GameObject: {fileID: 5245491127989480125} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 9826297ef4d853741b2af768441ec7f7, type: 3} + m_Script: {fileID: 11500000, guid: d3ebcf807a37f344998fd648dfc9376d, type: 3} m_Name: m_EditorClassIdentifier: - input_View: {x: 0, y: 0} - cameraHolder: {fileID: 5245491129196666053} - feetTransform: {fileID: 5245491129603592455} - playerSettings: - ViewXSensetivity: 20 - ViewYSensetivity: 20 - ViewXInverted: 0 - ViewYInverted: 0 - SprintingHold: 0 - MovementSmoothing: 0 - RunningForwardSpeed: 10 - RunningStrafeSpeed: 6 - WalkingForwardSpeed: 4 - WalkingBackwardSpeed: 2 - WalkingStrafeSpeed: 3 - JumpingHeight: 6 - JumpingFalloff: 1 - FallingSmoothing: 0 - SpeedEffector: 1 - CrouchSpeedEffector: 0 - ProneSpeedEffector: 0 - FallingSpeedEffector: 0 - ViewClampYMin: -70 - ViewClampYMax: 80 - playerMask: - serializedVersion: 2 - m_Bits: 55 - gravityAmount: 0.05 - gravityMin: -3 - jumpingForce: {x: 0, y: 0, z: 0} - playerStance: 0 - playerStanceSmoothing: 0.2 - playerStandStance: - CameraHeight: 0.7 - StanceCollider: {fileID: 5245491127989480120} - playerCrouchStance: - CameraHeight: 0.3 - StanceCollider: {fileID: 5245491127989480100} - playerProneStance: - CameraHeight: -0.58 - StanceCollider: {fileID: 5245491127989480121} - currentWeapon: {fileID: 8510909888689775086} ---- !u!114 &4890899368932544690 + navMeshAgent: {fileID: 0} + flag: {fileID: 0} +--- !u!114 &5220658550450318085 MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -210,9 +177,72 @@ MonoBehaviour: m_GameObject: {fileID: 5245491127989480125} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: a8c9a8e604d395c4ab9d03d28adc4982, type: 3} + m_Script: {fileID: 11500000, guid: dd8012d5925524537b27131fef517017, type: 3} m_Name: m_EditorClassIdentifier: + m_SensorName: BufferSensor + m_ObservableSize: 0 + m_MaxNumObservables: 0 +--- !u!114 &4264677542023120457 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5245491127989480125} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5d1c4e0b1822b495aa52bc52839ecb30, type: 3} + m_Name: + m_EditorClassIdentifier: + m_BrainParameters: + VectorObservationSize: 1 + NumStackedVectorObservations: 1 + m_ActionSpec: + m_NumContinuousActions: 0 + BranchSizes: 01000000 + VectorActionSize: 01000000 + VectorActionDescriptions: [] + VectorActionSpaceType: 0 + hasUpgradedBrainParametersWithActionSpec: 1 + m_Model: {fileID: 0} + m_InferenceDevice: 0 + m_BehaviorType: 0 + m_BehaviorName: My Behavior + TeamId: 0 + m_UseChildSensors: 1 + m_UseChildActuators: 1 + m_ObservableAttributeHandling: 0 +--- !u!114 &4715950961444674817 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5245491127989480125} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: a6f2a081cfc8c4b4bb6864331109d147, type: 3} + m_Name: + m_EditorClassIdentifier: + agentParameters: + maxStep: 0 + hasUpgradedFromAgentParameters: 1 + MaxStep: 0 +--- !u!114 &5653209015090846528 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5245491127989480125} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d3ebcf807a37f344998fd648dfc9376d, type: 3} + m_Name: + m_EditorClassIdentifier: + navMeshAgent: {fileID: 7254047075221496626} + flag: {fileID: 0} --- !u!1 &5245491128202443531 GameObject: m_ObjectHideFlags: 0 diff --git a/Assets/Scripts/Character/MovementController.cs b/Assets/Scripts/Character/MovementController.cs index 70341bb..98df2aa 100644 --- a/Assets/Scripts/Character/MovementController.cs +++ b/Assets/Scripts/Character/MovementController.cs @@ -9,27 +9,28 @@ public class MovementController : MonoBehaviour public int PointStartID { get; set; } public int PointEndID { get; private set; } public float FlagDistance { get; private set; } - private const float updateFlagPositionDelay = 5; - private const float updateReachedDestinationDelay = 5; + private const float UpdateFlagPositionDelay = 5; + private const float UpdateReachedDestinationDelay = 5; [SerializeField] private NavMeshAgent navMeshAgent; [SerializeField] private GameObject flag; public float DistanceToGo { get; private set; } public float RemainingDistance => navMeshAgent.remainingDistance; - private Dictionary idNavPointDict; + private Dictionary _idNavPointDict; private void Awake() { navMeshAgent.speed = SettingsReader.Instance.GetSettings.MovementSpeed; - idNavPointDict = MapManager.IDToNavPoint; - InvokeRepeating(nameof(UpdateFlagPosition), 0, updateFlagPositionDelay); - InvokeRepeating(nameof(ReachedDestination), 0, updateReachedDestinationDelay); + _idNavPointDict = MapManager.Instance.IDToNavPoint; + InvokeRepeating(nameof(UpdateFlagPosition), 0, UpdateFlagPositionDelay); + InvokeRepeating(nameof(ReachedDestination), 0, UpdateReachedDestinationDelay); } private void OnDestroy() { CancelInvoke(nameof(UpdateFlagPosition)); + CancelInvoke(nameof(ReachedDestination)); } private void UpdateFlagPosition() @@ -39,14 +40,14 @@ public class MovementController : MonoBehaviour public void MoveToRandomPoint() { - GoToNextNavPoint(MapManager.NavPoints[Random.Range(0, MapManager.NavPoints.Count)]); + GoToNextNavPoint(MapManager.Instance.NavPoints[Random.Range(0, MapManager.Instance.NavPoints.Count)]); } public List GetPointsCandidate() { - return MapManager.NavPoints + return MapManager.Instance.NavPoints .Where(point => - (idNavPointDict[PointStartID].Position - point.Position).magnitude < SettingsReader.Instance.GetSettings.MovementDistance) + (_idNavPointDict[PointStartID].Position - point.Position).magnitude < SettingsReader.Instance.GetSettings.MovementDistance) .ToList(); } @@ -62,7 +63,7 @@ public class MovementController : MonoBehaviour public void ReturnToStartPoint() { if (navMeshAgent.isStopped == true) navMeshAgent.isStopped = false; - navMeshAgent.SetDestination(idNavPointDict[PointStartID].Position); + navMeshAgent.SetDestination(_idNavPointDict[PointStartID].Position); PointEndID = PointStartID; PointStartID = -1; } diff --git a/Assets/Scripts/Character/NPC.cs b/Assets/Scripts/Character/NPC.cs index d47e377..36b76ec 100644 --- a/Assets/Scripts/Character/NPC.cs +++ b/Assets/Scripts/Character/NPC.cs @@ -5,7 +5,7 @@ using Unity.MLAgents.Actuators; using Unity.MLAgents.Sensors; using UnityEngine; -[RequireComponent(typeof(MovementController),typeof(BufferSensor))] +[RequireComponent(typeof(MovementController),typeof(BufferSensorComponent))] public class NPC : Agent, ICharacter { [HideInInspector] @@ -47,12 +47,12 @@ public class NPC : Agent, ICharacter moveController = gameObject.GetComponent(); bufferSensor = gameObject.GetComponent(); - + flagZone = GameObject.FindObjectOfType(); - if (flagZone == null) - Debug.LogError("Flag Is Not Setted"); - - navPointIdDict = MapManager.IDToNavPoint; + if (flagZone is null) + Debug.LogError("Flag Is Not Set"); + + navPointIdDict = MapManager.Instance.IDToNavPoint; if (navPointIdDict is null) Debug.LogError("Cant Find Nav Point Dictionary"); } @@ -64,12 +64,18 @@ public class NPC : Agent, ICharacter public override void OnEpisodeBegin() { + if (navPointIdDict is null) + Debug.LogError("Cant Find Nav Point Dictionary"); + NpcState = DirectState; flagZone = GameObject.FindObjectOfType(); } public override void CollectObservations(VectorSensor sensor) { + navPointIdDict = MapManager.Instance.IDToNavPoint; + if (navPointIdDict is null) + Debug.LogError("Cant Find Nav Point Dictionary"); var candidates = moveController.GetPointsCandidate(); //common sensors @@ -93,13 +99,14 @@ public class NPC : Agent, ICharacter //point sensors foreach (var point in candidates) { + var position = transform.position; bufferSensor.AppendObservation(new float[] { point.DeathAttr, (int)point.navType, //4 flagEnemyDistance - GameManager.IsCloserToFlagFromNextNavPoint(point, transform.position).ToInt(), + GameManager.IsCloserToFlagFromNextNavPoint(point, position).ToInt(), //5 EnemyVsNavPointDistance - GameManager.IsCloserToEnemyThanToNextNavPoint(point,transform.position, AgentCharacter.Team.GetOppositeTeam()).ToInt(), + GameManager.IsCloserToEnemyThanToNextNavPoint(point, position, AgentCharacter.Team.GetOppositeTeam()).ToInt(), //6 Have been seen by enemy in this point GameManager.IsHaveSeenByEnemy(AgentCharacter.Team.GetOppositeTeam(), point.Position).ToInt() @@ -165,11 +172,12 @@ public class NPC : Agent, ICharacter } public event Action OnDamageRecieved; - public void GetDamage(float damage) + public void GetDamage(int damage) { AgentCharacter.LastTimeHit = TimeManager.Instance.CurrentTime; Condition.GiveHealth(-Mathf.RoundToInt(damage * (1 - Condition.ArmourPoints * 0.5f))); Condition.GiveArmour(-Mathf.RoundToInt(Mathf.Sqrt(damage) * 5)); + OnDamageRecieved?.Invoke(damage, AgentCharacter.Team); if (Condition.HealthPoints < 0) { diff --git a/Assets/Scripts/Managers/GameManager.cs b/Assets/Scripts/Managers/GameManager.cs index 9299c9b..431fd81 100755 --- a/Assets/Scripts/Managers/GameManager.cs +++ b/Assets/Scripts/Managers/GameManager.cs @@ -24,7 +24,6 @@ public class GameManager : MonoBehaviour private void Start() { Academy.Instance.OnEnvironmentReset += ResetScene; - GlobalEventManager.OnCaptureFlag += FlagCaptured; GlobalEventManager.OnTimeLeft += TimeOut; diff --git a/Assets/Scripts/Managers/MapManager.cs b/Assets/Scripts/Managers/MapManager.cs index 14d70af..97a0c75 100755 --- a/Assets/Scripts/Managers/MapManager.cs +++ b/Assets/Scripts/Managers/MapManager.cs @@ -3,36 +3,36 @@ using UnityEngine; public class MapManager : MonoBehaviour { - private static MapManager instance; - public static MapManager Instance => instance; - [SerializeField] static List _navPoints; - public static List NavPoints { get => _navPoints; private set => _navPoints = value; } - public static Dictionary IDToNavPoint {get; private set; } + private static MapManager _instance; + public static MapManager Instance => _instance; + [SerializeField] private List _navPoints; + public List NavPoints { get => _navPoints; private set => _navPoints = value; } + public Dictionary IDToNavPoint {get; private set; } private void Awake() { - if (instance is null) - instance = this; + if (_instance is null) + _instance = this; else { Destroy(gameObject); Debug.LogError("Only 1 Instance"); } - } - - private void Start() - { + + NavPoints = new List(); var navPointSet = GameObject.Find("NavPoint Set"); var count = navPointSet.transform.childCount; - for (int i=0; i < count; i++) + for (var i=0; i < count; i++) NavPoints.Add(navPointSet.transform.GetChild(i) .gameObject.GetComponent()); - + print(NavPoints.Count); NavPointSetToID(); } + private void NavPointSetToID() { + IDToNavPoint = new Dictionary(); int i = 0; foreach (var navPoint in NavPoints) { @@ -45,8 +45,8 @@ public class MapManager : MonoBehaviour public static void AddDeathAttributeToPoints(int startPoint, int endPoint, float allDistance, float remainingDistance) { - var startNavPoint = IDToNavPoint[startPoint]; - var endNavPoint = IDToNavPoint[endPoint]; + var startNavPoint = _instance.IDToNavPoint[startPoint]; + var endNavPoint = _instance.IDToNavPoint[endPoint]; float coef; try { diff --git a/Assets/Scripts/Statistics/StatisticManager.cs.meta b/Assets/Scripts/Statistics/StatisticManager.cs.meta index 3a27c34..b8be93a 100644 --- a/Assets/Scripts/Statistics/StatisticManager.cs.meta +++ b/Assets/Scripts/Statistics/StatisticManager.cs.meta @@ -4,7 +4,7 @@ MonoImporter: externalObjects: {} serializedVersion: 2 defaultReferences: [] - executionOrder: 300 + executionOrder: 0 icon: {instanceID: 0} userData: assetBundleName: diff --git a/Assets/Settings/Game Settings.asset b/Assets/Settings/Game Settings.asset index ea0fad7..fc07488 100755 --- a/Assets/Settings/Game Settings.asset +++ b/Assets/Settings/Game Settings.asset @@ -12,7 +12,6 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: e2c47233b9062c84482336b145c6891b, type: 3} m_Name: Game Settings m_EditorClassIdentifier: -<<<<<<< HEAD IsTesting: 0 TimeToWin: 15 TimeOut: 3600 @@ -39,29 +38,3 @@ MonoBehaviour: DoDamageChanceInRunning: 30 DoDamageChanceInCover: 25 CrouchingCoefficient: 1.4 -======= - isTesting: 1 - timeToWin: 5 - timeOut: 1600 - movementDistance: 50 - movementSpeed: 3 - defTeamAI: 0 - atcTeamAI: 0 - numOfDefenders: 1 - numOfAttackers: 1 - hasHumanDefender: 1 - hasHumanAttacker: 0 - healthPickupAmount: 50 - armourPickupAmount: 50 - ammunitionPickupAmount: 120 - pickupsAmount: 2 - maxHealth: 100 - maxArmour: 100 - maxAmmo: 31337 - GetHitChanceInDirectPoint: 0 - GetHitChanceInRunning: 0 - GetHitChanceInCover: 0 - DoDamageChanceInDirectPoint: 0 - DoDamageChanceInRunning: 0 - DoDamageChanceInCover: 0 ->>>>>>> 351fa8ee12c499a0374be71a192a5f288611f467