From 3ede35447ecfc5fdfe6842b60372f0b772650fd1 Mon Sep 17 00:00:00 2001 From: Sewmina Dilshan Date: Sat, 15 Jul 2023 21:40:01 +0530 Subject: [PATCH] Pool. closes #1 --- .../Materials/.fuse_hidden0000967e00000005 | 77 ----- .../Low Poly Rafale Jet/Materials/color.mat | 3 +- Assets/Materials/cube.mat | 29 +- Assets/Materials/gnd.mat | 26 +- Assets/Scenes/SampleScene.unity | 320 +++++++++++++++++- Assets/Scripts/LevelGenerator.cs | 32 +- Assets/Scripts/ObjectPool.cs | 46 ++- Assets/Scripts/PlayerController.cs | 7 + ProjectSettings/QualitySettings.asset | 25 +- 9 files changed, 448 insertions(+), 117 deletions(-) delete mode 100644 Assets/Low Poly Rafale Jet/Materials/.fuse_hidden0000967e00000005 diff --git a/Assets/Low Poly Rafale Jet/Materials/.fuse_hidden0000967e00000005 b/Assets/Low Poly Rafale Jet/Materials/.fuse_hidden0000967e00000005 deleted file mode 100644 index a7b2402..0000000 --- a/Assets/Low Poly Rafale Jet/Materials/.fuse_hidden0000967e00000005 +++ /dev/null @@ -1,77 +0,0 @@ -%YAML 1.1 -%TAG !u! tag:unity3d.com,2011: ---- !u!21 &2100000 -Material: - serializedVersion: 6 - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_Name: color - m_Shader: {fileID: 7, guid: 0000000000000000f000000000000000, type: 0} - m_ShaderKeywords: - m_LightmapFlags: 4 - m_EnableInstancingVariants: 0 - m_DoubleSidedGI: 0 - m_CustomRenderQueue: -1 - stringTagMap: {} - disabledShaderPasses: [] - m_SavedProperties: - serializedVersion: 3 - m_TexEnvs: - - _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: 2800000, guid: bc2e36f38ce7cb047ab6f3fd2c71bc56, type: 3} - 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} - m_Floats: - - _BumpScale: 1 - - _Cutoff: 0.5 - - _DetailNormalMapScale: 1 - - _DstBlend: 0 - - _GlossMapScale: 1 - - _Glossiness: 0.5 - - _GlossyReflections: 1 - - _Metallic: 0 - - _Mode: 0 - - _OcclusionStrength: 1 - - _Parallax: 0.02 - - _SmoothnessTextureChannel: 0 - - _SpecularHighlights: 1 - - _SrcBlend: 1 - - _UVSec: 0 - - _ZWrite: 1 - m_Colors: - - _Color: {r: 1, g: 1, b: 1, a: 1} - - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} diff --git a/Assets/Low Poly Rafale Jet/Materials/color.mat b/Assets/Low Poly Rafale Jet/Materials/color.mat index c991de0..01d5132 100644 --- a/Assets/Low Poly Rafale Jet/Materials/color.mat +++ b/Assets/Low Poly Rafale Jet/Materials/color.mat @@ -65,10 +65,11 @@ Material: - _GlossMapScale: 1 - _Glossiness: 0.954 - _GlossyReflections: 1 - - _Metallic: 0.251 + - _Metallic: 0.441 - _Mode: 0 - _OcclusionStrength: 1 - _Parallax: 0.02 + - _Shininess: 0.094 - _SmoothnessTextureChannel: 0 - _SpecularHighlights: 1 - _SrcBlend: 1 diff --git a/Assets/Materials/cube.mat b/Assets/Materials/cube.mat index 160b1ed..d1d691e 100644 --- a/Assets/Materials/cube.mat +++ b/Assets/Materials/cube.mat @@ -8,7 +8,7 @@ Material: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_Name: cube - m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0} + m_Shader: {fileID: 10703, guid: 0000000000000000f000000000000000, type: 0} m_ValidKeywords: [] m_InvalidKeywords: [] m_LightmapFlags: 4 @@ -20,6 +20,10 @@ Material: m_SavedProperties: serializedVersion: 3 m_TexEnvs: + - _BackTex: + 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} @@ -36,14 +40,26 @@ Material: m_Texture: {fileID: 0} m_Scale: {x: 1, y: 1} m_Offset: {x: 0, y: 0} + - _DownTex: + 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: + - _FrontTex: m_Texture: {fileID: 0} m_Scale: {x: 1, y: 1} m_Offset: {x: 0, y: 0} + - _LeftTex: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MainTex: + m_Texture: {fileID: 2800000, guid: 585b70cb75dd43efbfead809c30a1731, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} - _MetallicGlossMap: m_Texture: {fileID: 0} m_Scale: {x: 1, y: 1} @@ -56,6 +72,14 @@ Material: m_Texture: {fileID: 0} m_Scale: {x: 1, y: 1} m_Offset: {x: 0, y: 0} + - _RightTex: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _UpTex: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} m_Ints: [] m_Floats: - _BumpScale: 1 @@ -69,6 +93,7 @@ Material: - _Mode: 0 - _OcclusionStrength: 1 - _Parallax: 0.02 + - _Shininess: 1 - _SmoothnessTextureChannel: 0 - _SpecularHighlights: 1 - _SrcBlend: 1 diff --git a/Assets/Materials/gnd.mat b/Assets/Materials/gnd.mat index 297af55..0ee8436 100644 --- a/Assets/Materials/gnd.mat +++ b/Assets/Materials/gnd.mat @@ -20,6 +20,10 @@ Material: m_SavedProperties: serializedVersion: 3 m_TexEnvs: + - _BackTex: + 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} @@ -36,14 +40,26 @@ Material: m_Texture: {fileID: 0} m_Scale: {x: 1, y: 1} m_Offset: {x: 0, y: 0} + - _DownTex: + 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: + - _FrontTex: m_Texture: {fileID: 0} m_Scale: {x: 1, y: 1} m_Offset: {x: 0, y: 0} + - _LeftTex: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MainTex: + m_Texture: {fileID: 2800000, guid: 57bdf03f4ab131043a2a45a9bc024377, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} - _MetallicGlossMap: m_Texture: {fileID: 0} m_Scale: {x: 1, y: 1} @@ -56,6 +72,14 @@ Material: m_Texture: {fileID: 0} m_Scale: {x: 1, y: 1} m_Offset: {x: 0, y: 0} + - _RightTex: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _UpTex: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} m_Ints: [] m_Floats: - _BumpScale: 1 diff --git a/Assets/Scenes/SampleScene.unity b/Assets/Scenes/SampleScene.unity index 3fbb6bf..77d6e18 100644 --- a/Assets/Scenes/SampleScene.unity +++ b/Assets/Scenes/SampleScene.unity @@ -217,6 +217,146 @@ Transform: m_Father: {fileID: 0} m_RootOrder: 3 m_LocalEulerAnglesHint: {x: 50, y: -30, z: 0} +--- !u!1 &732702952 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 732702953} + - component: {fileID: 732702954} + m_Layer: 0 + m_Name: Trail + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &732702953 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 732702952} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 2.2709, y: -0.3894, z: -2.177} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 4579375322291259260} + m_RootOrder: 8 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!96 &732702954 +TrailRenderer: + serializedVersion: 2 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 732702952} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 0 + m_LightProbeUsage: 0 + m_ReflectionProbeUsage: 0 + m_RayTracingMode: 0 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 10306, guid: 0000000000000000f000000000000000, type: 0} + 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_Time: 1 + m_Parameters: + serializedVersion: 3 + widthMultiplier: 1 + widthCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0.045833588 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 0.06525904 + value: 0 + inSlope: -0.0049789757 + outSlope: -0.0049789757 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.8667992 + outWeight: 0 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + colorGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 0} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 4433 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + numCornerVertices: 0 + numCapVertices: 0 + alignment: 0 + textureMode: 0 + shadowBias: 0.5 + generateLightingData: 0 + m_MinVertexDistance: 0.1 + m_Autodestruct: 0 + m_Emitting: 1 --- !u!1 &748019996 GameObject: m_ObjectHideFlags: 0 @@ -365,7 +505,7 @@ Camera: width: 1 height: 1 near clip plane: 0.3 - far clip plane: 1000 + far clip plane: 500 field of view: 42.9 orthographic: 0 orthographic size: 5 @@ -377,8 +517,8 @@ Camera: m_TargetTexture: {fileID: 0} m_TargetDisplay: 0 m_TargetEye: 3 - m_HDR: 1 - m_AllowMSAA: 1 + m_HDR: 0 + m_AllowMSAA: 0 m_AllowDynamicResolution: 0 m_ForceIntoRT: 0 m_OcclusionCulling: 1 @@ -416,6 +556,146 @@ MonoBehaviour: lookAtAngle: -10 fovBoost: 3 target: {fileID: 4579375322291259260} +--- !u!1 &987649924 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 987649925} + - component: {fileID: 987649926} + m_Layer: 0 + m_Name: Trail (1) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &987649925 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 987649924} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: -2.29, y: -0.3894, z: -2.177} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 4579375322291259260} + m_RootOrder: 9 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!96 &987649926 +TrailRenderer: + serializedVersion: 2 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 987649924} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 0 + m_LightProbeUsage: 0 + m_ReflectionProbeUsage: 0 + m_RayTracingMode: 0 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 10306, guid: 0000000000000000f000000000000000, type: 0} + 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_Time: 1 + m_Parameters: + serializedVersion: 3 + widthMultiplier: 1 + widthCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0.045833588 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 0.06525904 + value: 0 + inSlope: -0.0049789757 + outSlope: -0.0049789757 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.8667992 + outWeight: 0 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + colorGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 0} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 4433 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + numCornerVertices: 0 + numCapVertices: 0 + alignment: 0 + textureMode: 0 + shadowBias: 0.5 + generateLightingData: 0 + m_MinVertexDistance: 0.1 + m_Autodestruct: 0 + m_Emitting: 1 --- !u!1 &1134669278 GameObject: m_ObjectHideFlags: 0 @@ -548,6 +828,7 @@ GameObject: m_Component: - component: {fileID: 1276231673} - component: {fileID: 1276231672} + - component: {fileID: 1276231674} m_Layer: 0 m_Name: GameManager m_TagString: Untagged @@ -568,14 +849,15 @@ MonoBehaviour: m_Name: m_EditorClassIdentifier: cube: {fileID: 2072119741} - minBlocks: 3 - maxBlocks: 6 + minBlocks: 5 + maxBlocks: 10 minScale: {x: 2, y: 3, z: 2} maxScale: {x: 5, y: 20, z: 5} rotationRange: 20 distanceBetweenBlocks: 100 rowSpacing: 100 curBlock: 1 + borrowedObjects: [] --- !u!4 &1276231673 Transform: m_ObjectHideFlags: 0 @@ -591,6 +873,18 @@ Transform: m_Father: {fileID: 0} m_RootOrder: 8 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &1276231674 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1276231671} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 66366bcce2e1f46d98b67bbe5f158985, type: 3} + m_Name: + m_EditorClassIdentifier: --- !u!1 &1290954026 GameObject: m_ObjectHideFlags: 0 @@ -2379,6 +2673,7 @@ GameObject: m_Component: - component: {fileID: 4579375322291259260} - component: {fileID: 4579375322291259261} + - component: {fileID: 4579375322291259262} m_Layer: 0 m_Name: Rafale m_TagString: Untagged @@ -2406,6 +2701,8 @@ Transform: - {fileID: 1665089029875444949} - {fileID: 1665089029875444959} - {fileID: 1665089029875444929} + - {fileID: 732702953} + - {fileID: 987649925} m_Father: {fileID: 0} m_RootOrder: 1 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} @@ -2426,3 +2723,16 @@ MonoBehaviour: turningSmoothness: 0.1 turningRotation: -40 turningForce: 0 +--- !u!65 &4579375322291259262 +BoxCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4579375322291259259} + m_Material: {fileID: 0} + m_IsTrigger: 1 + m_Enabled: 1 + serializedVersion: 2 + m_Size: {x: 4.6359806, y: 1, z: 5.917099} + m_Center: {x: 0.001344204, y: -0.12, z: 0.20973969} diff --git a/Assets/Scripts/LevelGenerator.cs b/Assets/Scripts/LevelGenerator.cs index 30a86fa..242ef25 100644 --- a/Assets/Scripts/LevelGenerator.cs +++ b/Assets/Scripts/LevelGenerator.cs @@ -21,15 +21,37 @@ public class LevelGenerator : MonoBehaviour void Start() { - + Application.targetFrameRate= 60; } + float t =0; - // Update is called once per frame + public List borrowedObjects = new List(); void Update() { - if(PlayerController.instance.transform.position.z > (curBlock-3) * distanceBetweenBlocks){ + if(PlayerController.instance.transform.position.z > (curBlock-4) * distanceBetweenBlocks){ GenerateBlock(); } + + if(t < 1){ + t+=Time.deltaTime; + }else{ + t=0; + CheckBorrowed(); + } + } + + void CheckBorrowed(){ + List itemsToRemove = new List(); + for(int i=0; i < borrowedObjects.Count; i++){ + if(borrowedObjects[i].transform.position.z < PlayerController.instance.transform.position.z){ + ObjectPool.Despawn(borrowedObjects[i]); + itemsToRemove.Add(i); + } + } + + for(int i = itemsToRemove.Count-1; i > 0;i--){ + borrowedObjects.RemoveAt(i); + } } @@ -45,7 +67,9 @@ public class LevelGenerator : MonoBehaviour Vector3 size = new Vector3(Random.Range(minScale.x,maxScale.x),Random.Range(minScale.y,maxScale.y),Random.Range(minScale.z,maxScale.z)); float x = baseX + (i * size.x * (flip ? -1 : 1)); - GameObject newCube = Instantiate(cube, new Vector3(x,size.y * 0.4f,z), Quaternion.identity); + // GameObject newCube = Instantiate(cube, new Vector3(x,size.y * 0.4f,z), Quaternion.identity); + GameObject newCube = ObjectPool.Spawn(cube, new Vector3(x,size.y * 0.4f,z)); + borrowedObjects.Add(newCube); newCube.transform.localScale = size; newCube.transform.Rotate(new Vector3(0,0, rotationRange * ((float)i / (float)cubesCount) * (flip ? 1 : -1))); flip = !flip; diff --git a/Assets/Scripts/ObjectPool.cs b/Assets/Scripts/ObjectPool.cs index 8f2a8ca..cb6d038 100644 --- a/Assets/Scripts/ObjectPool.cs +++ b/Assets/Scripts/ObjectPool.cs @@ -5,40 +5,50 @@ using UnityEngine; public class ObjectPool : MonoBehaviour { public static ObjectPool instance; - public static Dictionary> pool; + public static Dictionary> pool = new Dictionary>(); void Awake(){ instance= this; } public static GameObject Spawn(GameObject obj, Vector3 position){ - if(pool.ContainsKey(obj)){ + if(pool.ContainsKey(obj.name)){ + // Debug.Log($"Has key : {pool[obj.name].Count}"); //use from pool - if(pool[obj].Count <=0){ + if(pool[obj.name].Count <=0){ GameObject go = Instantiate(obj, position, Quaternion.identity); - pool.Add(obj, new List()); - pool[obj].Add(go.transform); + // Debug.Log("Empty Reserves"); + + // pool[obj.name] new List(); + pool[obj.name].Add(go); return go; }else{ - GameObject chosen = pool[obj][0].gameObject; - pool[obj].RemoveAt(0); + GameObject chosen = pool[obj.name][0].gameObject; + chosen.gameObject.SetActive(true); + chosen.transform.position = position; + pool[obj.name].RemoveAt(0); + // Debug.Log("Reusing"); return chosen; } }else{ - GameObject go = Instantiate(obj, position, Quaternion.identity); - pool.Add(obj, new List()); - pool[obj].Add(go.transform); - return go; + // Debug.Log("First"); + GameObject go = Instantiate(obj, position, Quaternion.identity); + pool.Add(obj.name, new List()); + pool[obj.name].Add(go); + return go; } } public static void Despawn(GameObject obj){ - // if() + string objName = obj.name.Replace("(Clone)",""); + if(!pool.ContainsKey(objName)){ + pool.Add(obj.name, new List()); + } + + pool[objName].Add(obj); + + obj.SetActive(false); + + // Debug.Log($"Adding {objName} back to pool, " + pool[objName].Count); } } - -public class PoolItems{ - - - -} diff --git a/Assets/Scripts/PlayerController.cs b/Assets/Scripts/PlayerController.cs index fbf3dde..1baf4b8 100644 --- a/Assets/Scripts/PlayerController.cs +++ b/Assets/Scripts/PlayerController.cs @@ -33,6 +33,13 @@ public class PlayerController : MonoBehaviour transform.localEulerAngles = new Vector3(0,0, turningForce * turningRotation); } + + void OnTriggerEnter(Collider other){ + Debug.Log("Hit with " + other.name); + + Application.LoadLevel(0); + } + float input = 0; public void OnLeftPanel(){ input = -1; diff --git a/ProjectSettings/QualitySettings.asset b/ProjectSettings/QualitySettings.asset index 36c0dad..ff73d87 100644 --- a/ProjectSettings/QualitySettings.asset +++ b/ProjectSettings/QualitySettings.asset @@ -4,7 +4,7 @@ QualitySettings: m_ObjectHideFlags: 0 serializedVersion: 5 - m_CurrentQuality: 5 + m_CurrentQuality: 0 m_QualitySettings: - serializedVersion: 2 name: Very Low @@ -18,7 +18,7 @@ QualitySettings: shadowCascade2Split: 0.33333334 shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667} shadowmaskMode: 0 - blendWeights: 1 + skinWeights: 1 textureQuality: 1 anisotropicTextures: 0 antiAliasing: 0 @@ -40,6 +40,7 @@ QualitySettings: asyncUploadBufferSize: 16 asyncUploadPersistentBuffer: 1 resolutionScalingFixedDPIFactor: 1 + customRenderPipeline: {fileID: 0} excludedTargetPlatforms: [] - serializedVersion: 2 name: Low @@ -53,7 +54,7 @@ QualitySettings: shadowCascade2Split: 0.33333334 shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667} shadowmaskMode: 0 - blendWeights: 2 + skinWeights: 2 textureQuality: 0 anisotropicTextures: 0 antiAliasing: 0 @@ -75,6 +76,7 @@ QualitySettings: asyncUploadBufferSize: 16 asyncUploadPersistentBuffer: 1 resolutionScalingFixedDPIFactor: 1 + customRenderPipeline: {fileID: 0} excludedTargetPlatforms: [] - serializedVersion: 2 name: Medium @@ -88,7 +90,7 @@ QualitySettings: shadowCascade2Split: 0.33333334 shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667} shadowmaskMode: 0 - blendWeights: 2 + skinWeights: 2 textureQuality: 0 anisotropicTextures: 1 antiAliasing: 0 @@ -110,6 +112,7 @@ QualitySettings: asyncUploadBufferSize: 16 asyncUploadPersistentBuffer: 1 resolutionScalingFixedDPIFactor: 1 + customRenderPipeline: {fileID: 0} excludedTargetPlatforms: [] - serializedVersion: 2 name: High @@ -123,7 +126,7 @@ QualitySettings: shadowCascade2Split: 0.33333334 shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667} shadowmaskMode: 1 - blendWeights: 2 + skinWeights: 2 textureQuality: 0 anisotropicTextures: 1 antiAliasing: 0 @@ -145,6 +148,7 @@ QualitySettings: asyncUploadBufferSize: 16 asyncUploadPersistentBuffer: 1 resolutionScalingFixedDPIFactor: 1 + customRenderPipeline: {fileID: 0} excludedTargetPlatforms: [] - serializedVersion: 2 name: Very High @@ -158,7 +162,7 @@ QualitySettings: shadowCascade2Split: 0.33333334 shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667} shadowmaskMode: 1 - blendWeights: 4 + skinWeights: 4 textureQuality: 0 anisotropicTextures: 2 antiAliasing: 2 @@ -180,6 +184,7 @@ QualitySettings: asyncUploadBufferSize: 16 asyncUploadPersistentBuffer: 1 resolutionScalingFixedDPIFactor: 1 + customRenderPipeline: {fileID: 0} excludedTargetPlatforms: [] - serializedVersion: 2 name: Ultra @@ -193,7 +198,7 @@ QualitySettings: shadowCascade2Split: 0.33333334 shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667} shadowmaskMode: 1 - blendWeights: 4 + skinWeights: 4 textureQuality: 0 anisotropicTextures: 2 antiAliasing: 2 @@ -215,16 +220,18 @@ QualitySettings: asyncUploadBufferSize: 16 asyncUploadPersistentBuffer: 1 resolutionScalingFixedDPIFactor: 1 + customRenderPipeline: {fileID: 0} excludedTargetPlatforms: [] m_PerPlatformDefaultQuality: - Android: 2 - Lumin: 5 + Android: 0 GameCoreScarlett: 5 GameCoreXboxOne: 5 + Lumin: 5 Nintendo 3DS: 5 Nintendo Switch: 5 PS4: 5 PS5: 5 + Server: 0 Stadia: 5 Standalone: 5 WebGL: 3