Interfaces IInteractable and IDestroyable completed

Polish
Sascha 2023-06-19 09:59:01 +07:00
parent b5b41eccaa
commit 74bc90828b
30 changed files with 51819 additions and 5494 deletions

@ -0,0 +1,137 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!114 &-8580918388546504366
MonoBehaviour:
m_ObjectHideFlags: 11
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 0}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3}
m_Name:
m_EditorClassIdentifier:
version: 9
--- !u!21 &2100000
Material:
serializedVersion: 8
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name: Green
m_Shader: {fileID: 4800000, guid: 933532a4fcc9baf4fa0491de14d08ed7, type: 3}
m_Parent: {fileID: 0}
m_ModifiedSerializedProperties: 0
m_ValidKeywords:
- _EMISSION
m_InvalidKeywords: []
m_LightmapFlags: 1
m_EnableInstancingVariants: 0
m_DoubleSidedGI: 0
m_CustomRenderQueue: -1
stringTagMap:
RenderType: Opaque
disabledShaderPasses:
- MOTIONVECTORS
m_LockedProperties:
m_SavedProperties:
serializedVersion: 3
m_TexEnvs:
- _BaseMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _BumpMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _DetailAlbedoMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _DetailMask:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _DetailNormalMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _EmissionMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _MainTex:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _MetallicGlossMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _OcclusionMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _ParallaxMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _SpecGlossMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- unity_Lightmaps:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- unity_LightmapsInd:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- unity_ShadowMasks:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
m_Ints: []
m_Floats:
- _AddPrecomputedVelocity: 0
- _AlphaClip: 0
- _AlphaToMask: 0
- _Blend: 0
- _BlendModePreserveSpecular: 1
- _BumpScale: 1
- _ClearCoatMask: 0
- _ClearCoatSmoothness: 0
- _Cull: 2
- _Cutoff: 0.5
- _DetailAlbedoMapScale: 1
- _DetailNormalMapScale: 1
- _DstBlend: 0
- _DstBlendAlpha: 0
- _EnvironmentReflections: 1
- _GlossMapScale: 0
- _Glossiness: 0
- _GlossyReflections: 0
- _Metallic: 0
- _OcclusionStrength: 1
- _Parallax: 0.005
- _QueueOffset: 0
- _ReceiveShadows: 1
- _Smoothness: 0.5
- _SmoothnessTextureChannel: 0
- _SpecularHighlights: 1
- _SrcBlend: 1
- _SrcBlendAlpha: 1
- _Surface: 0
- _WorkflowMode: 1
- _ZWrite: 1
m_Colors:
- _BaseColor: {r: 0.28505325, g: 1, b: 0, a: 1}
- _Color: {r: 0.28505322, g: 1, b: 0, a: 1}
- _EmissionColor: {r: 0, g: 1, b: 0, a: 1}
- _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1}
m_BuildTextureStacks: []
m_AllowLocking: 1

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 401c964e39ae7cf5e8963396da57cb88
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 2100000
userData:
assetBundleName:
assetBundleVariant:

@ -0,0 +1,137 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!114 &-8580918388546504366
MonoBehaviour:
m_ObjectHideFlags: 11
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 0}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3}
m_Name:
m_EditorClassIdentifier:
version: 9
--- !u!21 &2100000
Material:
serializedVersion: 8
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name: Red
m_Shader: {fileID: 4800000, guid: 933532a4fcc9baf4fa0491de14d08ed7, type: 3}
m_Parent: {fileID: 0}
m_ModifiedSerializedProperties: 0
m_ValidKeywords:
- _EMISSION
m_InvalidKeywords: []
m_LightmapFlags: 1
m_EnableInstancingVariants: 0
m_DoubleSidedGI: 0
m_CustomRenderQueue: -1
stringTagMap:
RenderType: Opaque
disabledShaderPasses:
- MOTIONVECTORS
m_LockedProperties:
m_SavedProperties:
serializedVersion: 3
m_TexEnvs:
- _BaseMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _BumpMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _DetailAlbedoMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _DetailMask:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _DetailNormalMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _EmissionMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _MainTex:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _MetallicGlossMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _OcclusionMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _ParallaxMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _SpecGlossMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- unity_Lightmaps:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- unity_LightmapsInd:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- unity_ShadowMasks:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
m_Ints: []
m_Floats:
- _AddPrecomputedVelocity: 0
- _AlphaClip: 0
- _AlphaToMask: 0
- _Blend: 0
- _BlendModePreserveSpecular: 1
- _BumpScale: 1
- _ClearCoatMask: 0
- _ClearCoatSmoothness: 0
- _Cull: 2
- _Cutoff: 0.5
- _DetailAlbedoMapScale: 1
- _DetailNormalMapScale: 1
- _DstBlend: 0
- _DstBlendAlpha: 0
- _EnvironmentReflections: 1
- _GlossMapScale: 0
- _Glossiness: 0
- _GlossyReflections: 0
- _Metallic: 0
- _OcclusionStrength: 1
- _Parallax: 0.005
- _QueueOffset: 0
- _ReceiveShadows: 1
- _Smoothness: 0.5
- _SmoothnessTextureChannel: 0
- _SpecularHighlights: 1
- _SrcBlend: 1
- _SrcBlendAlpha: 1
- _Surface: 0
- _WorkflowMode: 1
- _ZWrite: 1
m_Colors:
- _BaseColor: {r: 1, g: 0, b: 0, a: 1}
- _Color: {r: 1, g: 0, b: 0, a: 1}
- _EmissionColor: {r: 1, g: 0, b: 0, a: 1}
- _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1}
m_BuildTextureStacks: []
m_AllowLocking: 1

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: cf2fa3f6570d6e6a199730979f1d7080
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 2100000
userData:
assetBundleName:
assetBundleVariant:

@ -15,7 +15,7 @@ Material:
m_InvalidKeywords: []
m_LightmapFlags: 4
m_EnableInstancingVariants: 0
m_DoubleSidedGI: 0
m_DoubleSidedGI: 1
m_CustomRenderQueue: 2000
stringTagMap:
RenderType: Opaque
@ -91,7 +91,7 @@ Material:
- _BumpScale: 1
- _ClearCoatMask: 0
- _ClearCoatSmoothness: 0
- _Cull: 2
- _Cull: 0
- _Cutoff: 0.5
- _DetailAlbedoMapScale: 1
- _DetailNormalMapScale: 1
@ -122,6 +122,7 @@ Material:
- _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
- _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1}
m_BuildTextureStacks: []
m_AllowLocking: 1
--- !u!114 &1913288933451029494
MonoBehaviour:
m_ObjectHideFlags: 11

@ -15,7 +15,7 @@ Material:
m_InvalidKeywords: []
m_LightmapFlags: 4
m_EnableInstancingVariants: 0
m_DoubleSidedGI: 0
m_DoubleSidedGI: 1
m_CustomRenderQueue: 2000
stringTagMap:
RenderType: Opaque
@ -91,7 +91,7 @@ Material:
- _BumpScale: 1
- _ClearCoatMask: 0
- _ClearCoatSmoothness: 0
- _Cull: 2
- _Cull: 0
- _Cutoff: 0.5
- _DetailAlbedoMapScale: 1
- _DetailNormalMapScale: 1
@ -122,6 +122,7 @@ Material:
- _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
- _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1}
m_BuildTextureStacks: []
m_AllowLocking: 1
--- !u!114 &1730407632308379108
MonoBehaviour:
m_ObjectHideFlags: 11

@ -1,22 +1,12 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!1001 &100100000
Prefab:
m_ObjectHideFlags: 1
serializedVersion: 2
m_Modification:
m_TransformParent: {fileID: 0}
m_Modifications: []
m_RemovedComponents: []
m_ParentPrefab: {fileID: 0}
m_RootGameObject: {fileID: 1852967516923486}
m_IsPrefabParent: 1
--- !u!1 &1852967516923486
GameObject:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000}
serializedVersion: 5
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 4263531196441134}
- component: {fileID: 33487094135010246}
@ -31,31 +21,50 @@ GameObject:
m_IsActive: 1
--- !u!4 &4263531196441134
Transform:
m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000}
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1852967516923486}
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_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!33 &33487094135010246
MeshFilter:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1852967516923486}
m_Mesh: {fileID: 4300000, guid: 7648119b4055248489399d8172e1ccbc, type: 3}
--- !u!23 &23391228476554062
MeshRenderer:
m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000}
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1852967516923486}
m_Enabled: 1
m_CastShadows: 1
m_ReceiveShadows: 1
m_DynamicOccludee: 1
m_StaticShadowCaster: 0
m_MotionVectors: 1
m_LightProbeUsage: 1
m_ReflectionProbeUsage: 1
m_RayTracingMode: 2
m_RayTraceProcedural: 0
m_RayTracingAccelStructBuildFlagsOverride: 0
m_RayTracingAccelStructBuildFlags: 1
m_RenderingLayerMask: 1
m_RendererPriority: 0
m_Materials:
- {fileID: 2100000, guid: 41680dad0f0243748b4e228f49a2e3c4, type: 2}
- {fileID: 2100000, guid: 673443bdcb7bf2f47be93ce60e68966f, type: 2}
m_StaticBatchInfo:
firstSubMesh: 0
subMeshCount: 0
@ -63,9 +72,11 @@ MeshRenderer:
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: 3
m_MinimumChartSize: 4
m_AutoUVMaxDistance: 0.5
@ -74,24 +85,26 @@ MeshRenderer:
m_SortingLayerID: 0
m_SortingLayer: 0
m_SortingOrder: 0
--- !u!33 &33487094135010246
MeshFilter:
m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 1852967516923486}
m_Mesh: {fileID: 4300000, guid: 7648119b4055248489399d8172e1ccbc, type: 3}
m_AdditionalVertexStreams: {fileID: 0}
--- !u!64 &64008491219568898
MeshCollider:
m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000}
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1852967516923486}
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
serializedVersion: 5
m_Convex: 0
m_InflateMesh: 0
m_SkinWidth: 0.01
m_CookingOptions: 30
m_Mesh: {fileID: 4300000, guid: 2d56fe2ad841a4f429c64626c08eaae5, type: 3}

@ -0,0 +1,140 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!1 &11884445617071955
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 1448231662597988608}
- component: {fileID: 4569254719215735236}
- component: {fileID: 7599129139086020475}
m_Layer: 0
m_Name: Barrel
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!4 &1448231662597988608
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 11884445617071955}
serializedVersion: 2
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 10, y: 0, z: 6}
m_LocalScale: {x: 2, y: 2, z: 2}
m_ConstrainProportionsScale: 1
m_Children:
- {fileID: 4388588092298628402}
m_Father: {fileID: 0}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!114 &4569254719215735236
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 11884445617071955}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: d5ab7e3a7782492d28791bd91a7516f5, type: 3}
m_Name:
m_EditorClassIdentifier:
barrelDestroyedPrefab: {fileID: 7063014693251211471, guid: 2f9536fa8a821014fb81ada20fcdcb78,
type: 3}
--- !u!65 &7599129139086020475
BoxCollider:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 11884445617071955}
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: 3
m_Size: {x: 1.2, y: 1.2, z: 1.2}
m_Center: {x: 0, y: 0.6, z: 0}
--- !u!1001 &4388907659789365520
PrefabInstance:
m_ObjectHideFlags: 0
serializedVersion: 2
m_Modification:
serializedVersion: 3
m_TransformParent: {fileID: 1448231662597988608}
m_Modifications:
- target: {fileID: 1547116696582102, guid: f750d5f061e724f4c827ab6b376e2550, type: 3}
propertyPath: m_Name
value: SM_Prop_Barrel_01
objectReference: {fileID: 0}
- target: {fileID: 4483658618797090, guid: f750d5f061e724f4c827ab6b376e2550, type: 3}
propertyPath: m_LocalPosition.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 4483658618797090, guid: f750d5f061e724f4c827ab6b376e2550, type: 3}
propertyPath: m_LocalPosition.y
value: 0.39
objectReference: {fileID: 0}
- target: {fileID: 4483658618797090, guid: f750d5f061e724f4c827ab6b376e2550, type: 3}
propertyPath: m_LocalPosition.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: 4483658618797090, guid: f750d5f061e724f4c827ab6b376e2550, type: 3}
propertyPath: m_LocalRotation.w
value: 1
objectReference: {fileID: 0}
- target: {fileID: 4483658618797090, guid: f750d5f061e724f4c827ab6b376e2550, type: 3}
propertyPath: m_LocalRotation.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 4483658618797090, guid: f750d5f061e724f4c827ab6b376e2550, type: 3}
propertyPath: m_LocalRotation.y
value: -0
objectReference: {fileID: 0}
- target: {fileID: 4483658618797090, guid: f750d5f061e724f4c827ab6b376e2550, type: 3}
propertyPath: m_LocalRotation.z
value: -0
objectReference: {fileID: 0}
- target: {fileID: 4483658618797090, guid: f750d5f061e724f4c827ab6b376e2550, type: 3}
propertyPath: m_LocalEulerAnglesHint.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 4483658618797090, guid: f750d5f061e724f4c827ab6b376e2550, type: 3}
propertyPath: m_LocalEulerAnglesHint.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 4483658618797090, guid: f750d5f061e724f4c827ab6b376e2550, type: 3}
propertyPath: m_LocalEulerAnglesHint.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: 23909629644402660, guid: f750d5f061e724f4c827ab6b376e2550,
type: 3}
propertyPath: 'm_Materials.Array.data[0]'
value:
objectReference: {fileID: 2100000, guid: 7d22fc6b9a431b043a917fb89a80bcfc, type: 2}
m_RemovedComponents:
- {fileID: 64866121705718766, guid: f750d5f061e724f4c827ab6b376e2550, type: 3}
m_RemovedGameObjects: []
m_AddedGameObjects: []
m_AddedComponents: []
m_SourcePrefab: {fileID: 100100000, guid: f750d5f061e724f4c827ab6b376e2550, type: 3}
--- !u!4 &4388588092298628402 stripped
Transform:
m_CorrespondingSourceObject: {fileID: 4483658618797090, guid: f750d5f061e724f4c827ab6b376e2550,
type: 3}
m_PrefabInstance: {fileID: 4388907659789365520}
m_PrefabAsset: {fileID: 0}

@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: d61c9cdff2aa262c5977c6361c76745f
PrefabImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

File diff suppressed because it is too large Load Diff

@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: 2f9536fa8a821014fb81ada20fcdcb78
PrefabImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

@ -67,6 +67,8 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: 32368030487579a3b947bd9853c5e9e5, type: 3}
m_Name:
m_EditorClassIdentifier:
crateDestroyedPrefab: {fileID: 9142444727976197465, guid: 603b90faed6758ad5af34fed4418f695,
type: 3}
--- !u!1001 &5886015247612728549
PrefabInstance:
m_ObjectHideFlags: 0
@ -139,7 +141,7 @@ PrefabInstance:
type: 3}
propertyPath: 'm_Materials.Array.data[0]'
value:
objectReference: {fileID: 2100000, guid: 4d1c11ecf91c18d4e86d3818e8c650cc, type: 2}
objectReference: {fileID: 2100000, guid: 40347e2344b3ed04a8165ea238a93a0b, type: 2}
m_RemovedComponents:
- {fileID: 64008491219568898, guid: e1b9e21039285c042b92ea66c7f1c444, type: 3}
m_RemovedGameObjects: []

File diff suppressed because it is too large Load Diff

@ -629,7 +629,7 @@ Transform:
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 330585543}
serializedVersion: 2
m_LocalRotation: {x: 0.3006394, y: -0.000000016410377, z: 0.000000005172915, w: 0.9537379}
m_LocalRotation: {x: 0.3006394, y: 0.000000016410377, z: -0.000000005172915, w: 0.9537379}
m_LocalPosition: {x: 3.01, y: 7, z: -6.75}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
@ -803,6 +803,74 @@ Transform:
type: 3}
m_PrefabInstance: {fileID: 330832436}
m_PrefabAsset: {fileID: 0}
--- !u!1001 &361322554
PrefabInstance:
m_ObjectHideFlags: 0
serializedVersion: 2
m_Modification:
serializedVersion: 3
m_TransformParent: {fileID: 0}
m_Modifications:
- target: {fileID: 11884445617071955, guid: d61c9cdff2aa262c5977c6361c76745f,
type: 3}
propertyPath: m_Name
value: Barrel
objectReference: {fileID: 0}
- target: {fileID: 1448231662597988608, guid: d61c9cdff2aa262c5977c6361c76745f,
type: 3}
propertyPath: m_LocalPosition.x
value: 10
objectReference: {fileID: 0}
- target: {fileID: 1448231662597988608, guid: d61c9cdff2aa262c5977c6361c76745f,
type: 3}
propertyPath: m_LocalPosition.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 1448231662597988608, guid: d61c9cdff2aa262c5977c6361c76745f,
type: 3}
propertyPath: m_LocalPosition.z
value: 6
objectReference: {fileID: 0}
- target: {fileID: 1448231662597988608, guid: d61c9cdff2aa262c5977c6361c76745f,
type: 3}
propertyPath: m_LocalRotation.w
value: 1
objectReference: {fileID: 0}
- target: {fileID: 1448231662597988608, guid: d61c9cdff2aa262c5977c6361c76745f,
type: 3}
propertyPath: m_LocalRotation.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 1448231662597988608, guid: d61c9cdff2aa262c5977c6361c76745f,
type: 3}
propertyPath: m_LocalRotation.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 1448231662597988608, guid: d61c9cdff2aa262c5977c6361c76745f,
type: 3}
propertyPath: m_LocalRotation.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: 1448231662597988608, guid: d61c9cdff2aa262c5977c6361c76745f,
type: 3}
propertyPath: m_LocalEulerAnglesHint.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 1448231662597988608, guid: d61c9cdff2aa262c5977c6361c76745f,
type: 3}
propertyPath: m_LocalEulerAnglesHint.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 1448231662597988608, guid: d61c9cdff2aa262c5977c6361c76745f,
type: 3}
propertyPath: m_LocalEulerAnglesHint.z
value: 0
objectReference: {fileID: 0}
m_RemovedComponents: []
m_RemovedGameObjects: []
m_AddedGameObjects: []
m_AddedComponents: []
m_SourcePrefab: {fileID: 100100000, guid: d61c9cdff2aa262c5977c6361c76745f, type: 3}
--- !u!1 &366831941
GameObject:
m_ObjectHideFlags: 0
@ -965,6 +1033,91 @@ MonoBehaviour:
m_LightCookieSize: {x: 1, y: 1}
m_LightCookieOffset: {x: 0, y: 0}
m_SoftShadowQuality: 3
--- !u!1 &426830527
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 426830530}
- component: {fileID: 426830529}
- component: {fileID: 426830528}
m_Layer: 0
m_Name: Sphere
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!23 &426830528
MeshRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 426830527}
m_Enabled: 1
m_CastShadows: 1
m_ReceiveShadows: 1
m_DynamicOccludee: 1
m_StaticShadowCaster: 0
m_MotionVectors: 1
m_LightProbeUsage: 1
m_ReflectionProbeUsage: 1
m_RayTracingMode: 2
m_RayTraceProcedural: 0
m_RayTracingAccelStructBuildFlagsOverride: 0
m_RayTracingAccelStructBuildFlags: 1
m_RenderingLayerMask: 1
m_RendererPriority: 0
m_Materials:
- {fileID: 2100000, guid: 401c964e39ae7cf5e8963396da57cb88, 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: 3
m_MinimumChartSize: 4
m_AutoUVMaxDistance: 0.5
m_AutoUVMaxAngle: 89
m_LightmapParameters: {fileID: 0}
m_SortingLayerID: 0
m_SortingLayer: 0
m_SortingOrder: 0
m_AdditionalVertexStreams: {fileID: 0}
--- !u!33 &426830529
MeshFilter:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 426830527}
m_Mesh: {fileID: 10207, guid: 0000000000000000e000000000000000, type: 0}
--- !u!4 &426830530
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 426830527}
serializedVersion: 2
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 0.5, y: 0.5, z: 0.5}
m_ConstrainProportionsScale: 1
m_Children: []
m_Father: {fileID: 2118659100}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!1001 &448453891
PrefabInstance:
m_ObjectHideFlags: 0
@ -1558,7 +1711,7 @@ Transform:
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 598754947}
serializedVersion: 2
m_LocalRotation: {x: 0.3006394, y: -0.000000016410377, z: 0.000000005172915, w: 0.9537379}
m_LocalRotation: {x: 0.3006394, y: 0.000000016410377, z: -0.000000005172915, w: 0.9537379}
m_LocalPosition: {x: 3.01, y: 7, z: -6.75}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 1
@ -11304,6 +11457,56 @@ PrefabInstance:
m_AddedGameObjects: []
m_AddedComponents: []
m_SourcePrefab: {fileID: 100100000, guid: 51df14b2dfd12ded6b0f0972c05cf8d4, type: 3}
--- !u!1 &2118659098
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 2118659100}
- component: {fileID: 2118659099}
m_Layer: 0
m_Name: InteractSphere
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!114 &2118659099
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2118659098}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 4a7576c5e4507f899b455737d6a92757, type: 3}
m_Name:
m_EditorClassIdentifier:
materials:
- {fileID: 2100000, guid: 401c964e39ae7cf5e8963396da57cb88, type: 2}
- {fileID: 2100000, guid: cf2fa3f6570d6e6a199730979f1d7080, type: 2}
meshRenderer: {fileID: 426830528}
isGreen: 0
--- !u!4 &2118659100
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2118659098}
serializedVersion: 2
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 4, y: 1, z: 2}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 1
m_Children:
- {fileID: 426830530}
m_Father: {fileID: 0}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!1001 &1402837731774236407
PrefabInstance:
m_ObjectHideFlags: 0
@ -11400,12 +11603,6 @@ PrefabInstance:
propertyPath: m_Name
value: Crate
objectReference: {fileID: 0}
- target: {fileID: 9112269570178995488, guid: 1a531e276d6ed5766a7e85e6d4642ff3,
type: 3}
propertyPath: crateDestroyedPrefab
value:
objectReference: {fileID: 9142444727976197465, guid: 603b90faed6758ad5af34fed4418f695,
type: 3}
- target: {fileID: 9142444727976197465, guid: 1a531e276d6ed5766a7e85e6d4642ff3,
type: 3}
propertyPath: m_LocalPosition.x
@ -11842,3 +12039,5 @@ SceneRoots:
- {fileID: 1588284869853455352}
- {fileID: 1482581177}
- {fileID: 7995715121813558043}
- {fileID: 2118659100}
- {fileID: 361322554}

@ -14,7 +14,7 @@ namespace Actions {
}
public override void TakeAction(GridPosition gridPosition, Action onActionComplete) {
LevelGrid.Instance.GetDoorAtGridPosition(gridPosition).Interact(OnInteractComplete);
LevelGrid.Instance.GetInteractableAtGridPosition(gridPosition).Interact(OnInteractComplete);
ActionStart(onActionComplete);
}
@ -26,7 +26,7 @@ namespace Actions {
GridPosition offsetGridPosition = new(x, z);
GridPosition testGridPosition = unitGridPosition + offsetGridPosition;
if (!LevelGrid.Instance.IsValidGridPosition(testGridPosition)) continue; //Only return valid grid positions
if (LevelGrid.Instance.GetDoorAtGridPosition(testGridPosition) is null) continue; //No Door on this GridPosition
if (LevelGrid.Instance.GetInteractableAtGridPosition(testGridPosition) is null) continue; //No Interactable on this GridPosition
validGridPositionList.Add(testGridPosition);
}
}

@ -0,0 +1,28 @@
using System;
using Grid;
using UnityEngine;
using Random = UnityEngine.Random;
public class Barrel : MonoBehaviour, IDestructable {
[SerializeField] private Transform barrelDestroyedPrefab;
private void Start() => GridPosition = LevelGrid.Instance.GetGridPosition(transform.position);
public GridPosition GridPosition { get; set; }
public void Damage(float damageAmount) {
Transform barrelDestroyedTransform = Instantiate(barrelDestroyedPrefab, transform.position, transform.rotation);
ApplyExplosionToChildren(barrelDestroyedTransform, Random.Range(damageAmount - 50f, damageAmount + 50f), transform.position, Random.Range(damageAmount / 10f, damageAmount / 5f));
Destroy(gameObject);
OnAnyDestroyed?.Invoke(this, EventArgs.Empty);
}
public static event EventHandler OnAnyDestroyed;
private static void ApplyExplosionToChildren(Transform root, float explosionForce, Vector3 explosionPosition, float explosionRadius) {
foreach (Transform child in root) {
if (!child.TryGetComponent(out Rigidbody childRigidbody)) continue;
childRigidbody.AddExplosionForce(explosionForce, explosionPosition, explosionRadius);
ApplyExplosionToChildren(child, explosionForce, explosionPosition, explosionRadius);
}
}
}

@ -0,0 +1,2 @@
fileFormatVersion: 2
guid: d5ab7e3a7782492d28791bd91a7516f5

@ -3,21 +3,21 @@ using Grid;
using UnityEngine;
using Random = UnityEngine.Random;
public class DestructableCrate : MonoBehaviour {
public class Crate : MonoBehaviour, IDestructable {
[SerializeField] private Transform crateDestroyedPrefab;
public GridPosition GridPosition { get; private set; }
private void Start() => GridPosition = LevelGrid.Instance.GetGridPosition(transform.position);
public GridPosition GridPosition { get; set; }
public static event EventHandler OnAnyDestroyed;
public void Damage() {
public void Damage(float damageAmount) {
Transform crateDestroyedTransform = Instantiate(crateDestroyedPrefab, transform.position, transform.rotation);
ApplyExplosionToChildren(crateDestroyedTransform, Random.Range(150f, 250f), transform.position, Random.Range(10f, 20f));
ApplyExplosionToChildren(crateDestroyedTransform, Random.Range(damageAmount - 50f, damageAmount + 50f), transform.position, Random.Range(damageAmount / 10f, damageAmount / 5f));
Destroy(gameObject);
OnAnyDestroyed?.Invoke(this, EventArgs.Empty);
}
public static event EventHandler OnAnyDestroyed;
private static void ApplyExplosionToChildren(Transform root, float explosionForce, Vector3 explosionPosition, float explosionRadius) {
foreach (Transform child in root) {
if (!child.TryGetComponent(out Rigidbody childRigidbody)) continue;

@ -2,13 +2,13 @@ using System;
using Grid;
using UnityEngine;
public class Door : MonoBehaviour {
public class Door : MonoBehaviour, IInteractable {
private static readonly int open = Animator.StringToHash("IsOpen");
[SerializeField] private bool isOpen;
private Animator animator;
private Action onInteractComplete;
private Action onInteractionComplete;
private float timer;
public bool IsActive { get; private set; }
private bool IsActive { get; set; }
private GridPosition GridPosition { get; set; }
private bool IsOpen {
@ -24,7 +24,7 @@ public class Door : MonoBehaviour {
private void Start() {
GridPosition = LevelGrid.Instance.GetGridPosition(transform.position);
LevelGrid.Instance.SetDoorAtGridPosition(GridPosition, this);
LevelGrid.Instance.SetInteractableAtGridPosition(GridPosition, this);
IsOpen = isOpen;
}
@ -33,11 +33,11 @@ public class Door : MonoBehaviour {
timer -= Time.deltaTime;
if (timer > 0f) return;
IsActive = false;
onInteractComplete();
onInteractionComplete();
}
public void Interact(Action newOnInteractComplete) {
onInteractComplete = newOnInteractComplete;
public void Interact(Action newOnInteractionComplete) {
onInteractionComplete = newOnInteractionComplete;
IsActive = true;
timer = .5f;
IsOpen = !IsOpen;

@ -7,6 +7,7 @@ public class GrenadeProjectile : MonoBehaviour {
private const float moveSpeed = 15f;
private const float reachedTargetDistance = 2f;
private const float damageRadius = 4f;
private const float damage = 200f;
[SerializeField] private Transform grenadeExplodeVfxPrefab;
[SerializeField] private TrailRenderer trailRenderer;
@ -36,7 +37,7 @@ public class GrenadeProjectile : MonoBehaviour {
Collider[] hitColliderArray = Physics.OverlapSphere(targetPosition, damageRadius);
foreach (Collider hitCollider in hitColliderArray) {
if (hitCollider.TryGetComponent(out Unit targetUnit)) targetUnit.Damage(30);
if (hitCollider.TryGetComponent(out DestructableCrate destructableCrate)) destructableCrate.Damage();
if (hitCollider.TryGetComponent(out IDestructable destructable)) destructable.Damage(damage);
}
OnAnyGrenadeExploded?.Invoke(this, EventArgs.Empty);

@ -12,7 +12,7 @@ namespace Grid {
private GridSystem<GridObject> GridSystem { get; }
private GridPosition GridPosition { get; }
public List<Unit> UnitList { get; }
public Door Door { get; set; }
public IInteractable Interactable { get; set; }
public override string ToString() {
string unitString = UnitList.Aggregate("", (current, unit) => current + (unit + "\n"));

@ -12,7 +12,6 @@ namespace Grid {
[SerializeField] private int height = 20;
[SerializeField] private float cellSize = 2f;
private GridSystem<GridObject> gridSystem;
public static LevelGrid Instance { get; private set; }
@ -51,7 +50,7 @@ namespace Grid {
public bool HasAnyUnitOnGridPosition(GridPosition gridPosition) => gridSystem.GetGridObject(gridPosition).UnitList.Count > 0;
public Unit GetUnitAtGridPosition(GridPosition gridPosition) => gridSystem.GetGridObject(gridPosition).GetUnit();
public Door GetDoorAtGridPosition(GridPosition gridPosition) => gridSystem.GetGridObject(gridPosition).Door;
public void SetDoorAtGridPosition(GridPosition gridPosition, Door door) => gridSystem.GetGridObject(gridPosition).Door = door;
public IInteractable GetInteractableAtGridPosition(GridPosition gridPosition) => gridSystem.GetGridObject(gridPosition).Interactable;
public void SetInteractableAtGridPosition(GridPosition gridPosition, IInteractable interactable) => gridSystem.GetGridObject(gridPosition).Interactable = interactable;
}
}

@ -0,0 +1,6 @@
using Grid;
public interface IDestructable {
GridPosition GridPosition { get; }
void Damage(float damageAmount);
}

@ -0,0 +1,2 @@
fileFormatVersion: 2
guid: dc6b3e20f479e93b0a1d03b66d6b5d43

@ -0,0 +1,5 @@
using System;
public interface IInteractable {
void Interact(Action newOnInteractionComplete);
}

@ -0,0 +1,2 @@
fileFormatVersion: 2
guid: 820cb37975301decfa2b0260c8845204

@ -0,0 +1,43 @@
using System;
using System.Collections.Generic;
using Grid;
using UnityEngine;
public class InteractSphere : MonoBehaviour, IInteractable {
[SerializeField] private List<Material> materials;
[SerializeField] private MeshRenderer meshRenderer;
[SerializeField] private bool isGreen;
private Action onInteractionComplete;
private float timer;
private bool IsActive { get; set; }
private GridPosition GridPosition { get; set; }
private bool IsGreen {
get => isGreen;
set {
isGreen = value;
meshRenderer.material = materials[IsGreen ? 0 : 1];
}
}
private void Start() {
GridPosition = LevelGrid.Instance.GetGridPosition(transform.position);
LevelGrid.Instance.SetInteractableAtGridPosition(GridPosition, this);
IsGreen = false;
}
private void Update() {
if (!IsActive) return;
timer -= Time.deltaTime;
if (timer > 0f) return;
IsActive = false;
onInteractionComplete();
}
public void Interact(Action newOnInteractionComplete) {
onInteractionComplete = newOnInteractionComplete;
IsActive = true;
timer = .5f;
IsGreen = !IsGreen;
}
}

@ -0,0 +1,2 @@
fileFormatVersion: 2
guid: 4a7576c5e4507f899b455737d6a92757

@ -2,10 +2,13 @@ using System;
using UnityEngine;
public class PathfindingUpdater : MonoBehaviour {
private void Start() => DestructableCrate.OnAnyDestroyed += DestructableCrate_OnAnyDestroyed;
private void Start() {
Crate.OnAnyDestroyed += Destructable_OnAnyDestroyed;
Barrel.OnAnyDestroyed += Destructable_OnAnyDestroyed;
}
private void DestructableCrate_OnAnyDestroyed(object sender, EventArgs e) {
DestructableCrate destructableCrate = sender as DestructableCrate;
if (destructableCrate != null) Pathfinding.Instance.SetWalkableGridPosition(destructableCrate.GridPosition, true);
private static void Destructable_OnAnyDestroyed(object sender, EventArgs e) {
if (sender is IDestructable destructable)
Pathfinding.Instance.SetWalkableGridPosition(destructable.GridPosition, true);
}
}