finally get pathfinding done?
This commit is contained in:
parent
7b151c1a53
commit
7bd61df481
23 changed files with 1408 additions and 785 deletions
181
Assets/Prefabs/Bullet.prefab
Normal file
181
Assets/Prefabs/Bullet.prefab
Normal file
|
|
@ -0,0 +1,181 @@
|
||||||
|
%YAML 1.1
|
||||||
|
%TAG !u! tag:unity3d.com,2011:
|
||||||
|
--- !u!1 &5624951259546849164
|
||||||
|
GameObject:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
serializedVersion: 6
|
||||||
|
m_Component:
|
||||||
|
- component: {fileID: 871033174871103021}
|
||||||
|
- component: {fileID: 1098970310217137319}
|
||||||
|
- component: {fileID: 3143241531658868448}
|
||||||
|
- component: {fileID: -1738584089269128998}
|
||||||
|
- component: {fileID: -1842087358034785043}
|
||||||
|
m_Layer: 8
|
||||||
|
m_Name: Bullet
|
||||||
|
m_TagString: Untagged
|
||||||
|
m_Icon: {fileID: 0}
|
||||||
|
m_NavMeshLayer: 0
|
||||||
|
m_StaticEditorFlags: 0
|
||||||
|
m_IsActive: 1
|
||||||
|
--- !u!4 &871033174871103021
|
||||||
|
Transform:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 5624951259546849164}
|
||||||
|
serializedVersion: 2
|
||||||
|
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
||||||
|
m_LocalPosition: {x: 0, y: 0, z: 0}
|
||||||
|
m_LocalScale: {x: 0.4, y: 0.2, z: 1}
|
||||||
|
m_ConstrainProportionsScale: 0
|
||||||
|
m_Children: []
|
||||||
|
m_Father: {fileID: 0}
|
||||||
|
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||||
|
--- !u!212 &1098970310217137319
|
||||||
|
SpriteRenderer:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 5624951259546849164}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_CastShadows: 0
|
||||||
|
m_ReceiveShadows: 0
|
||||||
|
m_DynamicOccludee: 1
|
||||||
|
m_StaticShadowCaster: 0
|
||||||
|
m_MotionVectors: 1
|
||||||
|
m_LightProbeUsage: 1
|
||||||
|
m_ReflectionProbeUsage: 1
|
||||||
|
m_RayTracingMode: 0
|
||||||
|
m_RayTraceProcedural: 0
|
||||||
|
m_RayTracingAccelStructBuildFlagsOverride: 0
|
||||||
|
m_RayTracingAccelStructBuildFlags: 1
|
||||||
|
m_SmallMeshCulling: 1
|
||||||
|
m_RenderingLayerMask: 1
|
||||||
|
m_RendererPriority: 0
|
||||||
|
m_Materials:
|
||||||
|
- {fileID: 2100000, guid: a97c105638bdf8b4a8650670310a4cd3, type: 2}
|
||||||
|
m_StaticBatchInfo:
|
||||||
|
firstSubMesh: 0
|
||||||
|
subMeshCount: 0
|
||||||
|
m_StaticBatchRoot: {fileID: 0}
|
||||||
|
m_ProbeAnchor: {fileID: 0}
|
||||||
|
m_LightProbeVolumeOverride: {fileID: 0}
|
||||||
|
m_ScaleInLightmap: 1
|
||||||
|
m_ReceiveGI: 1
|
||||||
|
m_PreserveUVs: 0
|
||||||
|
m_IgnoreNormalsForChartDetection: 0
|
||||||
|
m_ImportantGI: 0
|
||||||
|
m_StitchLightmapSeams: 1
|
||||||
|
m_SelectedEditorRenderState: 0
|
||||||
|
m_MinimumChartSize: 4
|
||||||
|
m_AutoUVMaxDistance: 0.5
|
||||||
|
m_AutoUVMaxAngle: 89
|
||||||
|
m_LightmapParameters: {fileID: 0}
|
||||||
|
m_SortingLayerID: 0
|
||||||
|
m_SortingLayer: 0
|
||||||
|
m_SortingOrder: 0
|
||||||
|
m_Sprite: {fileID: -2413806693520163455, guid: a86470a33a6bf42c4b3595704624658b, type: 3}
|
||||||
|
m_Color: {r: 1, g: 0.97658855, b: 0.504717, a: 1}
|
||||||
|
m_FlipX: 0
|
||||||
|
m_FlipY: 0
|
||||||
|
m_DrawMode: 0
|
||||||
|
m_Size: {x: 1, y: 1}
|
||||||
|
m_AdaptiveModeThreshold: 0.5
|
||||||
|
m_SpriteTileMode: 0
|
||||||
|
m_WasSpriteAssigned: 1
|
||||||
|
m_MaskInteraction: 0
|
||||||
|
m_SpriteSortPoint: 0
|
||||||
|
--- !u!61 &3143241531658868448
|
||||||
|
BoxCollider2D:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 5624951259546849164}
|
||||||
|
m_Enabled: 1
|
||||||
|
serializedVersion: 3
|
||||||
|
m_Density: 1
|
||||||
|
m_Material: {fileID: 0}
|
||||||
|
m_IncludeLayers:
|
||||||
|
serializedVersion: 2
|
||||||
|
m_Bits: 0
|
||||||
|
m_ExcludeLayers:
|
||||||
|
serializedVersion: 2
|
||||||
|
m_Bits: 0
|
||||||
|
m_LayerOverridePriority: 0
|
||||||
|
m_ForceSendLayers:
|
||||||
|
serializedVersion: 2
|
||||||
|
m_Bits: 4294967295
|
||||||
|
m_ForceReceiveLayers:
|
||||||
|
serializedVersion: 2
|
||||||
|
m_Bits: 4294967295
|
||||||
|
m_ContactCaptureLayers:
|
||||||
|
serializedVersion: 2
|
||||||
|
m_Bits: 4294967295
|
||||||
|
m_CallbackLayers:
|
||||||
|
serializedVersion: 2
|
||||||
|
m_Bits: 4294967295
|
||||||
|
m_IsTrigger: 1
|
||||||
|
m_UsedByEffector: 0
|
||||||
|
m_CompositeOperation: 0
|
||||||
|
m_CompositeOrder: 0
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
|
m_SpriteTilingProperty:
|
||||||
|
border: {x: 0, y: 0, z: 0, w: 0}
|
||||||
|
pivot: {x: 0.5, y: 0.5}
|
||||||
|
oldSize: {x: 1, y: 1}
|
||||||
|
newSize: {x: 1, y: 1}
|
||||||
|
adaptiveTilingThreshold: 0.5
|
||||||
|
drawMode: 0
|
||||||
|
adaptiveTiling: 0
|
||||||
|
m_AutoTiling: 0
|
||||||
|
m_Size: {x: 1, y: 1}
|
||||||
|
m_EdgeRadius: 0
|
||||||
|
--- !u!50 &-1738584089269128998
|
||||||
|
Rigidbody2D:
|
||||||
|
serializedVersion: 5
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 5624951259546849164}
|
||||||
|
m_BodyType: 0
|
||||||
|
m_Simulated: 1
|
||||||
|
m_UseFullKinematicContacts: 0
|
||||||
|
m_UseAutoMass: 0
|
||||||
|
m_Mass: 1
|
||||||
|
m_LinearDamping: 0
|
||||||
|
m_AngularDamping: 0.05
|
||||||
|
m_GravityScale: 0
|
||||||
|
m_Material: {fileID: 0}
|
||||||
|
m_IncludeLayers:
|
||||||
|
serializedVersion: 2
|
||||||
|
m_Bits: 0
|
||||||
|
m_ExcludeLayers:
|
||||||
|
serializedVersion: 2
|
||||||
|
m_Bits: 0
|
||||||
|
m_Interpolate: 0
|
||||||
|
m_SleepingMode: 1
|
||||||
|
m_CollisionDetection: 0
|
||||||
|
m_Constraints: 0
|
||||||
|
--- !u!114 &-1842087358034785043
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 5624951259546849164}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_EditorHideFlags: 0
|
||||||
|
m_Script: {fileID: 11500000, guid: f78ca53861065e860854d753e8509af8, type: 3}
|
||||||
|
m_Name:
|
||||||
|
m_EditorClassIdentifier:
|
||||||
|
rb: {fileID: -1738584089269128998}
|
||||||
|
damage: 100
|
||||||
|
speed: 10
|
||||||
|
pierceAmount: 4
|
||||||
7
Assets/Prefabs/Bullet.prefab.meta
Normal file
7
Assets/Prefabs/Bullet.prefab.meta
Normal file
|
|
@ -0,0 +1,7 @@
|
||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 66f942782c156c9aa905099dade8a654
|
||||||
|
PrefabImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
186
Assets/Prefabs/Enemy.prefab
Normal file
186
Assets/Prefabs/Enemy.prefab
Normal file
|
|
@ -0,0 +1,186 @@
|
||||||
|
%YAML 1.1
|
||||||
|
%TAG !u! tag:unity3d.com,2011:
|
||||||
|
--- !u!1 &1296817062174965064
|
||||||
|
GameObject:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
serializedVersion: 6
|
||||||
|
m_Component:
|
||||||
|
- component: {fileID: 7874053092508972642}
|
||||||
|
- component: {fileID: 6433073964262250546}
|
||||||
|
- component: {fileID: 1927474530946438604}
|
||||||
|
- component: {fileID: 5003734001845563076}
|
||||||
|
- component: {fileID: 3911937516835917761}
|
||||||
|
m_Layer: 7
|
||||||
|
m_Name: Enemy
|
||||||
|
m_TagString: Enemy
|
||||||
|
m_Icon: {fileID: 0}
|
||||||
|
m_NavMeshLayer: 0
|
||||||
|
m_StaticEditorFlags: 0
|
||||||
|
m_IsActive: 1
|
||||||
|
--- !u!4 &7874053092508972642
|
||||||
|
Transform:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 1296817062174965064}
|
||||||
|
serializedVersion: 2
|
||||||
|
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
||||||
|
m_LocalPosition: {x: -2.5, y: 1.5, z: 0}
|
||||||
|
m_LocalScale: {x: 0.8, y: 0.8, z: 1}
|
||||||
|
m_ConstrainProportionsScale: 0
|
||||||
|
m_Children: []
|
||||||
|
m_Father: {fileID: 0}
|
||||||
|
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||||
|
--- !u!212 &6433073964262250546
|
||||||
|
SpriteRenderer:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 1296817062174965064}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_CastShadows: 0
|
||||||
|
m_ReceiveShadows: 0
|
||||||
|
m_DynamicOccludee: 1
|
||||||
|
m_StaticShadowCaster: 0
|
||||||
|
m_MotionVectors: 1
|
||||||
|
m_LightProbeUsage: 1
|
||||||
|
m_ReflectionProbeUsage: 1
|
||||||
|
m_RayTracingMode: 0
|
||||||
|
m_RayTraceProcedural: 0
|
||||||
|
m_RayTracingAccelStructBuildFlagsOverride: 0
|
||||||
|
m_RayTracingAccelStructBuildFlags: 1
|
||||||
|
m_SmallMeshCulling: 1
|
||||||
|
m_RenderingLayerMask: 1
|
||||||
|
m_RendererPriority: 0
|
||||||
|
m_Materials:
|
||||||
|
- {fileID: 2100000, guid: a97c105638bdf8b4a8650670310a4cd3, type: 2}
|
||||||
|
m_StaticBatchInfo:
|
||||||
|
firstSubMesh: 0
|
||||||
|
subMeshCount: 0
|
||||||
|
m_StaticBatchRoot: {fileID: 0}
|
||||||
|
m_ProbeAnchor: {fileID: 0}
|
||||||
|
m_LightProbeVolumeOverride: {fileID: 0}
|
||||||
|
m_ScaleInLightmap: 1
|
||||||
|
m_ReceiveGI: 1
|
||||||
|
m_PreserveUVs: 0
|
||||||
|
m_IgnoreNormalsForChartDetection: 0
|
||||||
|
m_ImportantGI: 0
|
||||||
|
m_StitchLightmapSeams: 1
|
||||||
|
m_SelectedEditorRenderState: 0
|
||||||
|
m_MinimumChartSize: 4
|
||||||
|
m_AutoUVMaxDistance: 0.5
|
||||||
|
m_AutoUVMaxAngle: 89
|
||||||
|
m_LightmapParameters: {fileID: 0}
|
||||||
|
m_SortingLayerID: 0
|
||||||
|
m_SortingLayer: 0
|
||||||
|
m_SortingOrder: 0
|
||||||
|
m_Sprite: {fileID: 7482667652216324306, guid: 311925a002f4447b3a28927169b83ea6, type: 3}
|
||||||
|
m_Color: {r: 1, g: 0, b: 0, a: 1}
|
||||||
|
m_FlipX: 0
|
||||||
|
m_FlipY: 0
|
||||||
|
m_DrawMode: 0
|
||||||
|
m_Size: {x: 1, y: 1}
|
||||||
|
m_AdaptiveModeThreshold: 0.5
|
||||||
|
m_SpriteTileMode: 0
|
||||||
|
m_WasSpriteAssigned: 1
|
||||||
|
m_MaskInteraction: 0
|
||||||
|
m_SpriteSortPoint: 0
|
||||||
|
--- !u!61 &1927474530946438604
|
||||||
|
BoxCollider2D:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 1296817062174965064}
|
||||||
|
m_Enabled: 1
|
||||||
|
serializedVersion: 3
|
||||||
|
m_Density: 1
|
||||||
|
m_Material: {fileID: 0}
|
||||||
|
m_IncludeLayers:
|
||||||
|
serializedVersion: 2
|
||||||
|
m_Bits: 0
|
||||||
|
m_ExcludeLayers:
|
||||||
|
serializedVersion: 2
|
||||||
|
m_Bits: 0
|
||||||
|
m_LayerOverridePriority: 0
|
||||||
|
m_ForceSendLayers:
|
||||||
|
serializedVersion: 2
|
||||||
|
m_Bits: 4294967295
|
||||||
|
m_ForceReceiveLayers:
|
||||||
|
serializedVersion: 2
|
||||||
|
m_Bits: 4294967295
|
||||||
|
m_ContactCaptureLayers:
|
||||||
|
serializedVersion: 2
|
||||||
|
m_Bits: 4294967295
|
||||||
|
m_CallbackLayers:
|
||||||
|
serializedVersion: 2
|
||||||
|
m_Bits: 4294967295
|
||||||
|
m_IsTrigger: 0
|
||||||
|
m_UsedByEffector: 0
|
||||||
|
m_CompositeOperation: 0
|
||||||
|
m_CompositeOrder: 0
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
|
m_SpriteTilingProperty:
|
||||||
|
border: {x: 0, y: 0, z: 0, w: 0}
|
||||||
|
pivot: {x: 0.5, y: 0.5}
|
||||||
|
oldSize: {x: 1, y: 1}
|
||||||
|
newSize: {x: 1, y: 1}
|
||||||
|
adaptiveTilingThreshold: 0.5
|
||||||
|
drawMode: 0
|
||||||
|
adaptiveTiling: 0
|
||||||
|
m_AutoTiling: 0
|
||||||
|
m_Size: {x: 1, y: 1}
|
||||||
|
m_EdgeRadius: 0
|
||||||
|
--- !u!50 &5003734001845563076
|
||||||
|
Rigidbody2D:
|
||||||
|
serializedVersion: 5
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 1296817062174965064}
|
||||||
|
m_BodyType: 2
|
||||||
|
m_Simulated: 1
|
||||||
|
m_UseFullKinematicContacts: 0
|
||||||
|
m_UseAutoMass: 0
|
||||||
|
m_Mass: 1
|
||||||
|
m_LinearDamping: 0
|
||||||
|
m_AngularDamping: 0.05
|
||||||
|
m_GravityScale: 1
|
||||||
|
m_Material: {fileID: 0}
|
||||||
|
m_IncludeLayers:
|
||||||
|
serializedVersion: 2
|
||||||
|
m_Bits: 0
|
||||||
|
m_ExcludeLayers:
|
||||||
|
serializedVersion: 2
|
||||||
|
m_Bits: 0
|
||||||
|
m_Interpolate: 0
|
||||||
|
m_SleepingMode: 1
|
||||||
|
m_CollisionDetection: 0
|
||||||
|
m_Constraints: 0
|
||||||
|
--- !u!114 &3911937516835917761
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 1296817062174965064}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_EditorHideFlags: 0
|
||||||
|
m_Script: {fileID: 11500000, guid: 441b69580fe55f47ead9c7266bb4d363, type: 3}
|
||||||
|
m_Name:
|
||||||
|
m_EditorClassIdentifier:
|
||||||
|
health: 100
|
||||||
|
maxHealth: 100
|
||||||
|
maxMovement: 120
|
||||||
|
currentTile: {fileID: 0}
|
||||||
|
moveAnimSpeed: 0
|
||||||
|
canMove: 1
|
||||||
|
invincible: 0
|
||||||
|
turnSpeed: 1
|
||||||
|
minimumAttackRange: 10
|
||||||
7
Assets/Prefabs/Enemy.prefab.meta
Normal file
7
Assets/Prefabs/Enemy.prefab.meta
Normal file
|
|
@ -0,0 +1,7 @@
|
||||||
|
fileFormatVersion: 2
|
||||||
|
guid: f8b988bc429cbeb5fbdd3d95c8ce553b
|
||||||
|
PrefabImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
189
Assets/Prefabs/PlayerEntity.prefab
Normal file
189
Assets/Prefabs/PlayerEntity.prefab
Normal file
|
|
@ -0,0 +1,189 @@
|
||||||
|
%YAML 1.1
|
||||||
|
%TAG !u! tag:unity3d.com,2011:
|
||||||
|
--- !u!1 &8094053231633710175
|
||||||
|
GameObject:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
serializedVersion: 6
|
||||||
|
m_Component:
|
||||||
|
- component: {fileID: 576146896620919861}
|
||||||
|
- component: {fileID: 3017941309338641158}
|
||||||
|
- component: {fileID: 6953866836340070426}
|
||||||
|
- component: {fileID: 5017380791142386142}
|
||||||
|
- component: {fileID: 7370141107480051474}
|
||||||
|
m_Layer: 0
|
||||||
|
m_Name: PlayerEntity
|
||||||
|
m_TagString: Untagged
|
||||||
|
m_Icon: {fileID: 0}
|
||||||
|
m_NavMeshLayer: 0
|
||||||
|
m_StaticEditorFlags: 0
|
||||||
|
m_IsActive: 1
|
||||||
|
--- !u!4 &576146896620919861
|
||||||
|
Transform:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 8094053231633710175}
|
||||||
|
serializedVersion: 2
|
||||||
|
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
||||||
|
m_LocalPosition: {x: 2.5, y: 3.5, z: 0}
|
||||||
|
m_LocalScale: {x: 0.8, y: 0.8, z: 1}
|
||||||
|
m_ConstrainProportionsScale: 0
|
||||||
|
m_Children: []
|
||||||
|
m_Father: {fileID: 0}
|
||||||
|
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||||
|
--- !u!212 &3017941309338641158
|
||||||
|
SpriteRenderer:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 8094053231633710175}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_CastShadows: 0
|
||||||
|
m_ReceiveShadows: 0
|
||||||
|
m_DynamicOccludee: 1
|
||||||
|
m_StaticShadowCaster: 0
|
||||||
|
m_MotionVectors: 1
|
||||||
|
m_LightProbeUsage: 1
|
||||||
|
m_ReflectionProbeUsage: 1
|
||||||
|
m_RayTracingMode: 0
|
||||||
|
m_RayTraceProcedural: 0
|
||||||
|
m_RayTracingAccelStructBuildFlagsOverride: 0
|
||||||
|
m_RayTracingAccelStructBuildFlags: 1
|
||||||
|
m_SmallMeshCulling: 1
|
||||||
|
m_RenderingLayerMask: 1
|
||||||
|
m_RendererPriority: 0
|
||||||
|
m_Materials:
|
||||||
|
- {fileID: 2100000, guid: a97c105638bdf8b4a8650670310a4cd3, type: 2}
|
||||||
|
m_StaticBatchInfo:
|
||||||
|
firstSubMesh: 0
|
||||||
|
subMeshCount: 0
|
||||||
|
m_StaticBatchRoot: {fileID: 0}
|
||||||
|
m_ProbeAnchor: {fileID: 0}
|
||||||
|
m_LightProbeVolumeOverride: {fileID: 0}
|
||||||
|
m_ScaleInLightmap: 1
|
||||||
|
m_ReceiveGI: 1
|
||||||
|
m_PreserveUVs: 0
|
||||||
|
m_IgnoreNormalsForChartDetection: 0
|
||||||
|
m_ImportantGI: 0
|
||||||
|
m_StitchLightmapSeams: 1
|
||||||
|
m_SelectedEditorRenderState: 0
|
||||||
|
m_MinimumChartSize: 4
|
||||||
|
m_AutoUVMaxDistance: 0.5
|
||||||
|
m_AutoUVMaxAngle: 89
|
||||||
|
m_LightmapParameters: {fileID: 0}
|
||||||
|
m_SortingLayerID: 0
|
||||||
|
m_SortingLayer: 0
|
||||||
|
m_SortingOrder: 0
|
||||||
|
m_Sprite: {fileID: 7482667652216324306, guid: 311925a002f4447b3a28927169b83ea6, type: 3}
|
||||||
|
m_Color: {r: 0.5424528, g: 0.9869612, b: 1, a: 1}
|
||||||
|
m_FlipX: 0
|
||||||
|
m_FlipY: 0
|
||||||
|
m_DrawMode: 0
|
||||||
|
m_Size: {x: 1, y: 1}
|
||||||
|
m_AdaptiveModeThreshold: 0.5
|
||||||
|
m_SpriteTileMode: 0
|
||||||
|
m_WasSpriteAssigned: 1
|
||||||
|
m_MaskInteraction: 0
|
||||||
|
m_SpriteSortPoint: 0
|
||||||
|
--- !u!61 &6953866836340070426
|
||||||
|
BoxCollider2D:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 8094053231633710175}
|
||||||
|
m_Enabled: 1
|
||||||
|
serializedVersion: 3
|
||||||
|
m_Density: 1
|
||||||
|
m_Material: {fileID: 0}
|
||||||
|
m_IncludeLayers:
|
||||||
|
serializedVersion: 2
|
||||||
|
m_Bits: 0
|
||||||
|
m_ExcludeLayers:
|
||||||
|
serializedVersion: 2
|
||||||
|
m_Bits: 0
|
||||||
|
m_LayerOverridePriority: 0
|
||||||
|
m_ForceSendLayers:
|
||||||
|
serializedVersion: 2
|
||||||
|
m_Bits: 4294967295
|
||||||
|
m_ForceReceiveLayers:
|
||||||
|
serializedVersion: 2
|
||||||
|
m_Bits: 4294967295
|
||||||
|
m_ContactCaptureLayers:
|
||||||
|
serializedVersion: 2
|
||||||
|
m_Bits: 4294967295
|
||||||
|
m_CallbackLayers:
|
||||||
|
serializedVersion: 2
|
||||||
|
m_Bits: 4294967295
|
||||||
|
m_IsTrigger: 0
|
||||||
|
m_UsedByEffector: 0
|
||||||
|
m_CompositeOperation: 0
|
||||||
|
m_CompositeOrder: 0
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
|
m_SpriteTilingProperty:
|
||||||
|
border: {x: 0, y: 0, z: 0, w: 0}
|
||||||
|
pivot: {x: 0.5, y: 0.5}
|
||||||
|
oldSize: {x: 1, y: 1}
|
||||||
|
newSize: {x: 1, y: 1}
|
||||||
|
adaptiveTilingThreshold: 0.5
|
||||||
|
drawMode: 0
|
||||||
|
adaptiveTiling: 0
|
||||||
|
m_AutoTiling: 0
|
||||||
|
m_Size: {x: 1, y: 1}
|
||||||
|
m_EdgeRadius: 0
|
||||||
|
--- !u!50 &5017380791142386142
|
||||||
|
Rigidbody2D:
|
||||||
|
serializedVersion: 5
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 8094053231633710175}
|
||||||
|
m_BodyType: 2
|
||||||
|
m_Simulated: 1
|
||||||
|
m_UseFullKinematicContacts: 0
|
||||||
|
m_UseAutoMass: 0
|
||||||
|
m_Mass: 1
|
||||||
|
m_LinearDamping: 0
|
||||||
|
m_AngularDamping: 0.05
|
||||||
|
m_GravityScale: 1
|
||||||
|
m_Material: {fileID: 0}
|
||||||
|
m_IncludeLayers:
|
||||||
|
serializedVersion: 2
|
||||||
|
m_Bits: 0
|
||||||
|
m_ExcludeLayers:
|
||||||
|
serializedVersion: 2
|
||||||
|
m_Bits: 0
|
||||||
|
m_Interpolate: 0
|
||||||
|
m_SleepingMode: 1
|
||||||
|
m_CollisionDetection: 0
|
||||||
|
m_Constraints: 0
|
||||||
|
--- !u!114 &7370141107480051474
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 8094053231633710175}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_EditorHideFlags: 0
|
||||||
|
m_Script: {fileID: 11500000, guid: 87b2f3acfe362ceb498b8129365d99a9, type: 3}
|
||||||
|
m_Name:
|
||||||
|
m_EditorClassIdentifier:
|
||||||
|
health: 100
|
||||||
|
maxHealth: 100
|
||||||
|
maxMovement: 10
|
||||||
|
currentTile: {fileID: 0}
|
||||||
|
moveAnimSpeed: 2
|
||||||
|
canMove: 1
|
||||||
|
invincible: 0
|
||||||
|
hasMoved: 0
|
||||||
|
hasAttacked: 0
|
||||||
|
weapons:
|
||||||
|
- {fileID: 5015834028617221606, guid: a822f12b0129533629ae07e7075e0b33, type: 3}
|
||||||
|
currentWeapon: {fileID: 0}
|
||||||
7
Assets/Prefabs/PlayerEntity.prefab.meta
Normal file
7
Assets/Prefabs/PlayerEntity.prefab.meta
Normal file
|
|
@ -0,0 +1,7 @@
|
||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 0890a915b9432db98b28379f0c26c064
|
||||||
|
PrefabImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
48
Assets/Prefabs/RangedWeapon.prefab
Normal file
48
Assets/Prefabs/RangedWeapon.prefab
Normal file
|
|
@ -0,0 +1,48 @@
|
||||||
|
%YAML 1.1
|
||||||
|
%TAG !u! tag:unity3d.com,2011:
|
||||||
|
--- !u!1 &8120255683806130734
|
||||||
|
GameObject:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
serializedVersion: 6
|
||||||
|
m_Component:
|
||||||
|
- component: {fileID: 249869374080430447}
|
||||||
|
- component: {fileID: 5015834028617221606}
|
||||||
|
m_Layer: 0
|
||||||
|
m_Name: RangedWeapon
|
||||||
|
m_TagString: Untagged
|
||||||
|
m_Icon: {fileID: 0}
|
||||||
|
m_NavMeshLayer: 0
|
||||||
|
m_StaticEditorFlags: 0
|
||||||
|
m_IsActive: 1
|
||||||
|
--- !u!4 &249869374080430447
|
||||||
|
Transform:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 8120255683806130734}
|
||||||
|
serializedVersion: 2
|
||||||
|
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
||||||
|
m_LocalPosition: {x: 0, y: 0, z: 0}
|
||||||
|
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||||
|
m_ConstrainProportionsScale: 0
|
||||||
|
m_Children: []
|
||||||
|
m_Father: {fileID: 0}
|
||||||
|
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||||
|
--- !u!114 &5015834028617221606
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 8120255683806130734}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_EditorHideFlags: 0
|
||||||
|
m_Script: {fileID: 11500000, guid: a1c9e746311daba0092c2ff511ab3031, type: 3}
|
||||||
|
m_Name:
|
||||||
|
m_EditorClassIdentifier:
|
||||||
|
thisEntity: {fileID: 0}
|
||||||
|
projectile: {fileID: -1842087358034785043, guid: 66f942782c156c9aa905099dade8a654, type: 3}
|
||||||
7
Assets/Prefabs/RangedWeapon.prefab.meta
Normal file
7
Assets/Prefabs/RangedWeapon.prefab.meta
Normal file
|
|
@ -0,0 +1,7 @@
|
||||||
|
fileFormatVersion: 2
|
||||||
|
guid: a822f12b0129533629ae07e7075e0b33
|
||||||
|
PrefabImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
File diff suppressed because it is too large
Load diff
|
|
@ -1,4 +1,5 @@
|
||||||
using UnityEngine;
|
using UnityEngine;
|
||||||
|
using UnityEngine.UI;
|
||||||
|
|
||||||
public class ActionUIHandler : MonoBehaviour
|
public class ActionUIHandler : MonoBehaviour
|
||||||
{
|
{
|
||||||
|
|
@ -17,14 +18,28 @@ public class ActionUIHandler : MonoBehaviour
|
||||||
}
|
}
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
private PlayerEntity selectedEntity;
|
||||||
|
private RangedWeapon possibleRanged;
|
||||||
[Header("UI")]
|
[Header("UI")]
|
||||||
[SerializeField] private Vector3 offset;
|
[SerializeField] private Vector3 offset;
|
||||||
[SerializeField] private GameObject actionUI;
|
[SerializeField] private GameObject actionUI;
|
||||||
private Entity selectedEntity;
|
[SerializeField] private Button attackButton;
|
||||||
public void ShowUI(Entity target)
|
[SerializeField] private Button reloadButton;
|
||||||
|
|
||||||
|
public void ShowUI(PlayerEntity target)
|
||||||
{
|
{
|
||||||
|
possibleRanged = null;
|
||||||
selectedEntity = target;
|
selectedEntity = target;
|
||||||
transform.position = Input.mousePosition + offset;
|
transform.position = Input.mousePosition + offset;
|
||||||
|
if (target.currentWeapon.TryGetComponent(out RangedWeapon isRanged))
|
||||||
|
{
|
||||||
|
possibleRanged = isRanged;
|
||||||
|
reloadButton.gameObject.SetActive(true);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
reloadButton.gameObject.SetActive(false);
|
||||||
|
}
|
||||||
actionUI.SetActive(true);
|
actionUI.SetActive(true);
|
||||||
}
|
}
|
||||||
public void HideUI()
|
public void HideUI()
|
||||||
|
|
@ -32,6 +47,20 @@ public class ActionUIHandler : MonoBehaviour
|
||||||
actionUI.SetActive(false);
|
actionUI.SetActive(false);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void ReloadGun()
|
||||||
|
{
|
||||||
|
possibleRanged.Reload();
|
||||||
|
}
|
||||||
|
|
||||||
|
public void Attack()
|
||||||
|
{
|
||||||
|
selectedEntity.Attack();
|
||||||
|
}
|
||||||
|
|
||||||
|
public void SkipTurn()
|
||||||
|
{
|
||||||
|
selectedEntity.SkipTurn();
|
||||||
|
}
|
||||||
public void MoveEntity()
|
public void MoveEntity()
|
||||||
{
|
{
|
||||||
HideUI();
|
HideUI();
|
||||||
|
|
|
||||||
10
Assets/Scripts/MeleeWeapon.cs
Normal file
10
Assets/Scripts/MeleeWeapon.cs
Normal file
|
|
@ -0,0 +1,10 @@
|
||||||
|
using UnityEngine;
|
||||||
|
|
||||||
|
public class MeleeWeapon : MonoBehaviour
|
||||||
|
{
|
||||||
|
|
||||||
|
public virtual void AttackEffects()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
2
Assets/Scripts/MeleeWeapon.cs.meta
Normal file
2
Assets/Scripts/MeleeWeapon.cs.meta
Normal file
|
|
@ -0,0 +1,2 @@
|
||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 6f675ec09a8210538b466e213a2c2bba
|
||||||
|
|
@ -6,9 +6,19 @@ public class PlayerEntity : Entity
|
||||||
public bool hasMoved = false;
|
public bool hasMoved = false;
|
||||||
public bool hasAttacked = false;
|
public bool hasAttacked = false;
|
||||||
private List<TileObject> moveableTiles = new();
|
private List<TileObject> moveableTiles = new();
|
||||||
|
[SerializeField] private Weapon[] weapons;
|
||||||
|
private List<Weapon> weaponInstances = new();
|
||||||
|
public Weapon currentWeapon;
|
||||||
void Start()
|
void Start()
|
||||||
{
|
{
|
||||||
|
foreach (Weapon weapon in weapons)
|
||||||
|
{
|
||||||
|
Weapon newWeapon = Instantiate(weapon, transform);
|
||||||
|
newWeapon.thisEntity = this;
|
||||||
|
newWeapon.tag = tag;
|
||||||
|
weaponInstances.Add(newWeapon);
|
||||||
|
}
|
||||||
|
currentWeapon = weaponInstances[0];
|
||||||
}
|
}
|
||||||
|
|
||||||
// Update is called once per frame
|
// Update is called once per frame
|
||||||
|
|
@ -22,13 +32,21 @@ public class PlayerEntity : Entity
|
||||||
hasMoved = true;
|
hasMoved = true;
|
||||||
hasAttacked = true;
|
hasAttacked = true;
|
||||||
TurnHandler.instance.UpdateTurns();
|
TurnHandler.instance.UpdateTurns();
|
||||||
|
}
|
||||||
|
public void Attack()
|
||||||
|
{
|
||||||
|
currentWeapon.TryAttack();
|
||||||
|
}
|
||||||
|
|
||||||
|
public void SwitchWeapon()
|
||||||
|
{
|
||||||
|
|
||||||
}
|
}
|
||||||
private void OnMouseDown()
|
private void OnMouseDown()
|
||||||
{
|
{
|
||||||
if ((!hasMoved) && !PlayerEntityMovement.instance.isMoving)
|
if ((!hasMoved) && !PlayerEntityMovement.instance.isMoving)
|
||||||
{
|
{
|
||||||
ActionUIHandler.instance.ShowUI(this);
|
ActionUIHandler.instance.ShowUI(this);
|
||||||
SkipTurn();
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -22,7 +22,7 @@ public class PlayerEntityMovement : MonoBehaviour
|
||||||
#endregion
|
#endregion
|
||||||
[SerializeField] private Grid gameplayGrid;
|
[SerializeField] private Grid gameplayGrid;
|
||||||
|
|
||||||
public Entity selectedEntity;
|
public PlayerEntity selectedEntity;
|
||||||
public GameObject templateObject;
|
public GameObject templateObject;
|
||||||
public bool isMoving;
|
public bool isMoving;
|
||||||
|
|
||||||
|
|
@ -37,6 +37,7 @@ public class PlayerEntityMovement : MonoBehaviour
|
||||||
private Queue<TileObject> frontier = new();
|
private Queue<TileObject> frontier = new();
|
||||||
private HashSet<TileObject> visited = new();
|
private HashSet<TileObject> visited = new();
|
||||||
private Dictionary<TileObject, TileObject> currentPaths = new();
|
private Dictionary<TileObject, TileObject> currentPaths = new();
|
||||||
|
private Dictionary<TileObject, int> movementCosts = new();
|
||||||
public List<TileObject> pathRequested;
|
public List<TileObject> pathRequested;
|
||||||
private TileObject requestedTile;
|
private TileObject requestedTile;
|
||||||
|
|
||||||
|
|
@ -77,7 +78,7 @@ public class PlayerEntityMovement : MonoBehaviour
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void SelectEntity(Entity entitySelected)
|
public void SelectEntity(PlayerEntity entitySelected)
|
||||||
{
|
{
|
||||||
selectedEntity = entitySelected;
|
selectedEntity = entitySelected;
|
||||||
isMoving = true;
|
isMoving = true;
|
||||||
|
|
@ -87,8 +88,9 @@ public class PlayerEntityMovement : MonoBehaviour
|
||||||
visited.Clear();
|
visited.Clear();
|
||||||
currentPaths.Clear();
|
currentPaths.Clear();
|
||||||
pathRequested.Clear();
|
pathRequested.Clear();
|
||||||
|
currentMovableTiles.Clear();
|
||||||
|
movementCosts.Clear();
|
||||||
GetAllTiles();
|
GetAllTiles();
|
||||||
GetTilesInRange();
|
|
||||||
CreateTemplate();
|
CreateTemplate();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -103,19 +105,31 @@ public class PlayerEntityMovement : MonoBehaviour
|
||||||
private void GetAllTiles()
|
private void GetAllTiles()
|
||||||
{
|
{
|
||||||
frontier.Enqueue(selectedEntity.currentTile);
|
frontier.Enqueue(selectedEntity.currentTile);
|
||||||
|
movementCosts.TryAdd(selectedEntity.currentTile, 0);
|
||||||
while (frontier.Count > 0)
|
while (frontier.Count > 0)
|
||||||
{
|
{
|
||||||
TileObject currentTile = frontier.Dequeue();
|
TileObject currentTile = frontier.Dequeue();
|
||||||
|
if (movementCosts[currentTile] <= selectedEntity.maxMovement)
|
||||||
|
{
|
||||||
|
currentMovableTiles.Add(currentTile);
|
||||||
|
}
|
||||||
foreach (TileObject neighboringTiles in currentTile.neighbors)
|
foreach (TileObject neighboringTiles in currentTile.neighbors)
|
||||||
{
|
{
|
||||||
|
int newCost = movementCosts[currentTile] + 1;
|
||||||
if (!visited.Contains(neighboringTiles))
|
if (!visited.Contains(neighboringTiles))
|
||||||
{
|
{
|
||||||
visited.Add(neighboringTiles);
|
visited.Add(neighboringTiles);
|
||||||
frontier.Enqueue(neighboringTiles);
|
frontier.Enqueue(neighboringTiles);
|
||||||
currentPaths.TryAdd(neighboringTiles, currentTile);
|
currentPaths.TryAdd(neighboringTiles, currentTile);
|
||||||
|
movementCosts.TryAdd(neighboringTiles, newCost);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
foreach (TileObject tileObject in currentMovableTiles)
|
||||||
|
{
|
||||||
|
tileObject.sprite.color = Color.green;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void PathfindToTarget()
|
private void PathfindToTarget()
|
||||||
|
|
@ -134,32 +148,6 @@ public class PlayerEntityMovement : MonoBehaviour
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void GetTilesInRange()
|
|
||||||
{
|
|
||||||
foreach (TileObject neighboringTiles in selectedEntity.currentTile.neighbors)
|
|
||||||
{
|
|
||||||
if (!neighboringTiles.blocked && !neighboringTiles.hasUnit)
|
|
||||||
{
|
|
||||||
currentMovableTiles.Add(neighboringTiles);
|
|
||||||
neighboringTiles.sprite.color = Color.green;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
for (int i = 0; i < selectedEntity.maxMovement - 1; i++)
|
|
||||||
{
|
|
||||||
foreach (TileObject tileObject in currentMovableTiles.ToArray())
|
|
||||||
{
|
|
||||||
foreach (TileObject neighboringTiles in tileObject.neighbors)
|
|
||||||
{
|
|
||||||
if (!neighboringTiles.blocked && !neighboringTiles.hasUnit)
|
|
||||||
{
|
|
||||||
currentMovableTiles.Add(neighboringTiles);
|
|
||||||
neighboringTiles.sprite.color = Color.green;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private bool SelectLocation()
|
private bool SelectLocation()
|
||||||
{
|
{
|
||||||
if (!requestedTile || requestedTile.blocked || requestedTile.hasUnit || !currentMovableTiles.Contains(requestedTile))
|
if (!requestedTile || requestedTile.blocked || requestedTile.hasUnit || !currentMovableTiles.Contains(requestedTile))
|
||||||
|
|
|
||||||
35
Assets/Scripts/Projectile.cs
Normal file
35
Assets/Scripts/Projectile.cs
Normal file
|
|
@ -0,0 +1,35 @@
|
||||||
|
using System;
|
||||||
|
using Core.Extensions;
|
||||||
|
using UnityEngine;
|
||||||
|
|
||||||
|
public class Projectile : MonoBehaviour
|
||||||
|
{
|
||||||
|
[SerializeField] private Rigidbody2D rb;
|
||||||
|
[Header("Stats")]
|
||||||
|
public float damage;
|
||||||
|
public float speed;
|
||||||
|
public int pierceAmount;
|
||||||
|
private int currentPierce;
|
||||||
|
private void FixedUpdate()
|
||||||
|
{
|
||||||
|
rb.linearVelocity = transform.right * speed;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void RotateToTarget(Vector3 target)
|
||||||
|
{
|
||||||
|
transform.Lookat2D(target);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void OnTriggerEnter2D(Collider2D collision)
|
||||||
|
{
|
||||||
|
if (!collision.CompareTag(tag) && collision.TryGetComponent(out Entity isEntity))
|
||||||
|
{
|
||||||
|
isEntity.TakeDamage(damage);
|
||||||
|
currentPierce++;
|
||||||
|
if (currentPierce > pierceAmount)
|
||||||
|
{
|
||||||
|
Destroy(gameObject);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
2
Assets/Scripts/Projectile.cs.meta
Normal file
2
Assets/Scripts/Projectile.cs.meta
Normal file
|
|
@ -0,0 +1,2 @@
|
||||||
|
fileFormatVersion: 2
|
||||||
|
guid: f78ca53861065e860854d753e8509af8
|
||||||
53
Assets/Scripts/RangedWeapon.cs
Normal file
53
Assets/Scripts/RangedWeapon.cs
Normal file
|
|
@ -0,0 +1,53 @@
|
||||||
|
using System;
|
||||||
|
using UnityEngine;
|
||||||
|
|
||||||
|
public class RangedWeapon : Weapon
|
||||||
|
{
|
||||||
|
private Camera cam;
|
||||||
|
private Vector3 mousePos;
|
||||||
|
public bool fired;
|
||||||
|
public bool isAiming;
|
||||||
|
[SerializeField] private Projectile projectile;
|
||||||
|
private void Start()
|
||||||
|
{
|
||||||
|
cam = Camera.main;
|
||||||
|
}
|
||||||
|
|
||||||
|
public override void TryAttack()
|
||||||
|
{
|
||||||
|
if (!fired)
|
||||||
|
{
|
||||||
|
fired = true;
|
||||||
|
AttackEffects();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public void Reload()
|
||||||
|
{
|
||||||
|
fired = false;
|
||||||
|
}
|
||||||
|
protected override void AttackEffects()
|
||||||
|
{
|
||||||
|
isAiming = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
private void Update()
|
||||||
|
{
|
||||||
|
if (isAiming)
|
||||||
|
{
|
||||||
|
mousePos = cam.ScreenToWorldPoint(Input.mousePosition);
|
||||||
|
if (Input.GetMouseButtonDown(0))
|
||||||
|
{
|
||||||
|
CreateProjectile(mousePos);
|
||||||
|
isAiming = false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void CreateProjectile(Vector3 target)
|
||||||
|
{
|
||||||
|
Projectile newProjectile = Instantiate(projectile, transform.position, Quaternion.identity);
|
||||||
|
newProjectile.RotateToTarget(target);
|
||||||
|
newProjectile.tag = tag;
|
||||||
|
}
|
||||||
|
}
|
||||||
2
Assets/Scripts/RangedWeapon.cs.meta
Normal file
2
Assets/Scripts/RangedWeapon.cs.meta
Normal file
|
|
@ -0,0 +1,2 @@
|
||||||
|
fileFormatVersion: 2
|
||||||
|
guid: a1c9e746311daba0092c2ff511ab3031
|
||||||
15
Assets/Scripts/Weapon.cs
Normal file
15
Assets/Scripts/Weapon.cs
Normal file
|
|
@ -0,0 +1,15 @@
|
||||||
|
using UnityEngine;
|
||||||
|
|
||||||
|
public class Weapon : MonoBehaviour
|
||||||
|
{
|
||||||
|
public PlayerEntity thisEntity;
|
||||||
|
public virtual void TryAttack()
|
||||||
|
{
|
||||||
|
AttackEffects();
|
||||||
|
}
|
||||||
|
|
||||||
|
protected virtual void AttackEffects()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
2
Assets/Scripts/Weapon.cs.meta
Normal file
2
Assets/Scripts/Weapon.cs.meta
Normal file
|
|
@ -0,0 +1,2 @@
|
||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 02f7281b91434f3b79ab427e45d8d855
|
||||||
|
|
@ -53,4 +53,4 @@ Physics2DSettings:
|
||||||
m_ReuseCollisionCallbacks: 1
|
m_ReuseCollisionCallbacks: 1
|
||||||
m_AutoSyncTransforms: 0
|
m_AutoSyncTransforms: 0
|
||||||
m_GizmoOptions: 10
|
m_GizmoOptions: 10
|
||||||
m_LayerCollisionMatrix: 2000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
|
m_LayerCollisionMatrix: 2000000000000000000000000001000000000000010000000000000080010000880000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
|
||||||
|
|
|
||||||
|
|
@ -3,17 +3,18 @@
|
||||||
--- !u!78 &1
|
--- !u!78 &1
|
||||||
TagManager:
|
TagManager:
|
||||||
serializedVersion: 3
|
serializedVersion: 3
|
||||||
tags: []
|
tags:
|
||||||
|
- Enemy
|
||||||
layers:
|
layers:
|
||||||
- Default
|
- Default
|
||||||
- TransparentFX
|
- TransparentFX
|
||||||
- Ignore Raycast
|
- Ignore Raycast
|
||||||
-
|
- Environment
|
||||||
- Water
|
- Water
|
||||||
- UI
|
- UI
|
||||||
- Tile
|
- Tile
|
||||||
-
|
- Entity
|
||||||
-
|
- Projectile
|
||||||
-
|
-
|
||||||
-
|
-
|
||||||
-
|
-
|
||||||
|
|
|
||||||
BIN
mono_crash.mem.210.1.blob
Normal file
BIN
mono_crash.mem.210.1.blob
Normal file
Binary file not shown.
Loading…
Add table
Add a link
Reference in a new issue