Add object pool pattern

This commit is contained in:
EmirHanMamak 2026-03-10 23:29:20 +03:00
parent b56ecf121e
commit 60c451a9c5
17 changed files with 3067 additions and 82 deletions

View file

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 07fbcac79223007b688046d9df32b5bd
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View file

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 733b806dda275a7abad29376413ee442
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View file

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 214ffb8e651f6fd938a6abe6eec21bca
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View file

@ -0,0 +1,124 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!1 &3470822524306365437
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 2315927934180016851}
- component: {fileID: 8380505533590118246}
- component: {fileID: 4137014889539128891}
- component: {fileID: 1253646616903043857}
- component: {fileID: 5689563771877257576}
m_Layer: 0
m_Name: Bullet
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!4 &2315927934180016851
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 3470822524306365437}
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!33 &8380505533590118246
MeshFilter:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 3470822524306365437}
m_Mesh: {fileID: 10207, guid: 0000000000000000e000000000000000, type: 0}
--- !u!23 &4137014889539128891
MeshRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 3470822524306365437}
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_SmallMeshCulling: 1
m_RenderingLayerMask: 1
m_RendererPriority: 0
m_Materials:
- {fileID: 2100000, guid: 31321ba15b8f8eb4c954353edc038b1d, 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!135 &1253646616903043857
SphereCollider:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 3470822524306365437}
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_Radius: 0.5
m_Center: {x: 0, y: 0, z: 0}
--- !u!114 &5689563771877257576
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 3470822524306365437}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 83de7980998f472bb8ac78ba90b22889, type: 3}
m_Name:
m_EditorClassIdentifier:
speed: 6

View file

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

View file

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 28a8aefd79d3b5ef1b62a5dbbc8b2395
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View file

@ -0,0 +1,432 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!29 &1
OcclusionCullingSettings:
m_ObjectHideFlags: 0
serializedVersion: 2
m_OcclusionBakeSettings:
smallestOccluder: 5
smallestHole: 0.25
backfaceThreshold: 100
m_SceneGUID: 00000000000000000000000000000000
m_OcclusionCullingData: {fileID: 0}
--- !u!104 &2
RenderSettings:
m_ObjectHideFlags: 0
serializedVersion: 10
m_Fog: 0
m_FogColor: {r: 0.5, g: 0.5, b: 0.5, a: 1}
m_FogMode: 3
m_FogDensity: 0.01
m_LinearFogStart: 0
m_LinearFogEnd: 300
m_AmbientSkyColor: {r: 0.212, g: 0.227, b: 0.259, a: 1}
m_AmbientEquatorColor: {r: 0.114, g: 0.125, b: 0.133, a: 1}
m_AmbientGroundColor: {r: 0.047, g: 0.043, b: 0.035, a: 1}
m_AmbientIntensity: 1
m_AmbientMode: 0
m_SubtractiveShadowColor: {r: 0.42, g: 0.478, b: 0.627, a: 1}
m_SkyboxMaterial: {fileID: 10304, guid: 0000000000000000f000000000000000, type: 0}
m_HaloStrength: 0.5
m_FlareStrength: 1
m_FlareFadeSpeed: 3
m_HaloTexture: {fileID: 0}
m_SpotCookie: {fileID: 10001, guid: 0000000000000000e000000000000000, type: 0}
m_DefaultReflectionMode: 0
m_DefaultReflectionResolution: 128
m_ReflectionBounces: 1
m_ReflectionIntensity: 1
m_CustomReflection: {fileID: 0}
m_Sun: {fileID: 0}
m_UseRadianceAmbientProbe: 0
--- !u!157 &3
LightmapSettings:
m_ObjectHideFlags: 0
serializedVersion: 13
m_BakeOnSceneLoad: 0
m_GISettings:
serializedVersion: 2
m_BounceScale: 1
m_IndirectOutputScale: 1
m_AlbedoBoost: 1
m_EnvironmentLightingMode: 0
m_EnableBakedLightmaps: 1
m_EnableRealtimeLightmaps: 0
m_LightmapEditorSettings:
serializedVersion: 12
m_Resolution: 2
m_BakeResolution: 40
m_AtlasSize: 1024
m_AO: 0
m_AOMaxDistance: 1
m_CompAOExponent: 1
m_CompAOExponentDirect: 0
m_ExtractAmbientOcclusion: 0
m_Padding: 2
m_LightmapParameters: {fileID: 0}
m_LightmapsBakeMode: 1
m_TextureCompression: 1
m_ReflectionCompression: 2
m_MixedBakeMode: 2
m_BakeBackend: 1
m_PVRSampling: 1
m_PVRDirectSampleCount: 32
m_PVRSampleCount: 512
m_PVRBounces: 2
m_PVREnvironmentSampleCount: 256
m_PVREnvironmentReferencePointCount: 2048
m_PVRFilteringMode: 1
m_PVRDenoiserTypeDirect: 1
m_PVRDenoiserTypeIndirect: 1
m_PVRDenoiserTypeAO: 1
m_PVRFilterTypeDirect: 0
m_PVRFilterTypeIndirect: 0
m_PVRFilterTypeAO: 0
m_PVREnvironmentMIS: 1
m_PVRCulling: 1
m_PVRFilteringGaussRadiusDirect: 1
m_PVRFilteringGaussRadiusIndirect: 1
m_PVRFilteringGaussRadiusAO: 1
m_PVRFilteringAtrousPositionSigmaDirect: 0.5
m_PVRFilteringAtrousPositionSigmaIndirect: 2
m_PVRFilteringAtrousPositionSigmaAO: 1
m_ExportTrainingData: 0
m_TrainingDataDestination: TrainingData
m_LightProbeSampleCountMultiplier: 4
m_LightingDataAsset: {fileID: 20201, guid: 0000000000000000f000000000000000, type: 0}
m_LightingSettings: {fileID: 0}
--- !u!196 &4
NavMeshSettings:
serializedVersion: 2
m_ObjectHideFlags: 0
m_BuildSettings:
serializedVersion: 3
agentTypeID: 0
agentRadius: 0.5
agentHeight: 2
agentSlope: 45
agentClimb: 0.4
ledgeDropHeight: 0
maxJumpAcrossDistance: 0
minRegionArea: 2
manualCellSize: 0
cellSize: 0.16666667
manualTileSize: 0
tileSize: 256
buildHeightMesh: 0
maxJobWorkers: 0
preserveTilesOutsideBounds: 0
debug:
m_Flags: 0
m_NavMeshData: {fileID: 0}
--- !u!1 &83674396
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 83674397}
- component: {fileID: 83674398}
m_Layer: 0
m_Name: Launcher
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!4 &83674397
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 83674396}
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 &83674398
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 83674396}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: f76260f329eb4bda8ac263bb42a2bf8f, type: 3}
m_Name:
m_EditorClassIdentifier:
bulletPrefab: {fileID: 5689563771877257576, guid: 1a6d66ae079bb41d3a97dc10014323c3, type: 3}
maxPoolSize: 2
--- !u!1 &988401686
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 988401689}
- component: {fileID: 988401688}
- component: {fileID: 988401687}
- component: {fileID: 988401690}
m_Layer: 0
m_Name: Main Camera
m_TagString: MainCamera
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!81 &988401687
AudioListener:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 988401686}
m_Enabled: 1
--- !u!20 &988401688
Camera:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 988401686}
m_Enabled: 1
serializedVersion: 2
m_ClearFlags: 1
m_BackGroundColor: {r: 0.19215687, g: 0.3019608, b: 0.4745098, a: 0}
m_projectionMatrixMode: 1
m_GateFitMode: 2
m_FOVAxisMode: 0
m_Iso: 200
m_ShutterSpeed: 0.005
m_Aperture: 16
m_FocusDistance: 10
m_FocalLength: 50
m_BladeCount: 5
m_Curvature: {x: 2, y: 11}
m_BarrelClipping: 0.25
m_Anamorphism: 0
m_SensorSize: {x: 36, y: 24}
m_LensShift: {x: 0, y: 0}
m_NormalizedViewPortRect:
serializedVersion: 2
x: 0
y: 0
width: 1
height: 1
near clip plane: 0.3
far clip plane: 1000
field of view: 60
orthographic: 0
orthographic size: 5
m_Depth: -1
m_CullingMask:
serializedVersion: 2
m_Bits: 4294967295
m_RenderingPath: -1
m_TargetTexture: {fileID: 0}
m_TargetDisplay: 0
m_TargetEye: 3
m_HDR: 1
m_AllowMSAA: 1
m_AllowDynamicResolution: 0
m_ForceIntoRT: 0
m_OcclusionCulling: 1
m_StereoConvergence: 10
m_StereoSeparation: 0.022
--- !u!4 &988401689
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 988401686}
serializedVersion: 2
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: -5}
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 &988401690
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 988401686}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: a79441f348de89743a2939f4d699eac1, type: 3}
m_Name:
m_EditorClassIdentifier:
m_RenderShadows: 1
m_RequiresDepthTextureOption: 2
m_RequiresOpaqueTextureOption: 2
m_CameraType: 0
m_Cameras: []
m_RendererIndex: -1
m_VolumeLayerMask:
serializedVersion: 2
m_Bits: 1
m_VolumeTrigger: {fileID: 0}
m_VolumeFrameworkUpdateModeOption: 2
m_RenderPostProcessing: 0
m_Antialiasing: 0
m_AntialiasingQuality: 2
m_StopNaN: 0
m_Dithering: 0
m_ClearDepth: 1
m_AllowXRRendering: 1
m_AllowHDROutput: 1
m_UseScreenCoordOverride: 0
m_ScreenSizeOverride: {x: 0, y: 0, z: 0, w: 0}
m_ScreenCoordScaleBias: {x: 0, y: 0, z: 0, w: 0}
m_RequiresDepthTexture: 0
m_RequiresColorTexture: 0
m_Version: 2
m_TaaSettings:
m_Quality: 3
m_FrameInfluence: 0.1
m_JitterScale: 1
m_MipBias: 0
m_VarianceClampScale: 0.9
m_ContrastAdaptiveSharpening: 0
--- !u!1 &1822460036
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 1822460038}
- component: {fileID: 1822460037}
- component: {fileID: 1822460039}
m_Layer: 0
m_Name: Directional Light
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!108 &1822460037
Light:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1822460036}
m_Enabled: 1
serializedVersion: 11
m_Type: 1
m_Color: {r: 1, g: 0.95686275, b: 0.8392157, a: 1}
m_Intensity: 1
m_Range: 10
m_SpotAngle: 30
m_InnerSpotAngle: 21.80208
m_CookieSize: 10
m_Shadows:
m_Type: 2
m_Resolution: -1
m_CustomResolution: -1
m_Strength: 1
m_Bias: 0.05
m_NormalBias: 0.4
m_NearPlane: 0.2
m_CullingMatrixOverride:
e00: 1
e01: 0
e02: 0
e03: 0
e10: 0
e11: 1
e12: 0
e13: 0
e20: 0
e21: 0
e22: 1
e23: 0
e30: 0
e31: 0
e32: 0
e33: 1
m_UseCullingMatrixOverride: 0
m_Cookie: {fileID: 0}
m_DrawHalo: 0
m_Flare: {fileID: 0}
m_RenderMode: 0
m_CullingMask:
serializedVersion: 2
m_Bits: 4294967295
m_RenderingLayerMask: 1
m_Lightmapping: 4
m_LightShadowCasterMode: 0
m_AreaSize: {x: 1, y: 1}
m_BounceIntensity: 1
m_ColorTemperature: 6570
m_UseColorTemperature: 0
m_BoundingSphereOverride: {x: 0, y: 0, z: 0, w: 0}
m_UseBoundingSphereOverride: 0
m_UseViewFrustumForShadowCasterCull: 1
m_ForceVisible: 0
m_ShadowRadius: 0
m_ShadowAngle: 0
m_LightUnit: 1
m_LuxAtDistance: 1
m_EnableSpotReflector: 1
--- !u!4 &1822460038
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1822460036}
serializedVersion: 2
m_LocalRotation: {x: 0.40821788, y: -0.23456968, z: 0.10938163, w: 0.8754261}
m_LocalPosition: {x: 0, y: 3, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 0}
m_LocalEulerAnglesHint: {x: 50, y: -30, z: 0}
--- !u!114 &1822460039
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1822460036}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 474bcb49853aa07438625e644c072ee6, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Version: 3
m_UsePipelineSettings: 1
m_AdditionalLightsShadowResolutionTier: 2
m_LightLayerMask: 1
m_RenderingLayers: 1
m_CustomShadowLayers: 0
m_ShadowLayerMask: 1
m_ShadowRenderingLayers: 1
m_LightCookieSize: {x: 1, y: 1}
m_LightCookieOffset: {x: 0, y: 0}
m_SoftShadowQuality: 0
--- !u!1660057539 &9223372036854775807
SceneRoots:
m_ObjectHideFlags: 0
m_Roots:
- {fileID: 988401689}
- {fileID: 1822460038}
- {fileID: 83674397}

View file

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

View file

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: c6aeafbb33018d3f2baa679c0b8d4dff
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View file

@ -0,0 +1,28 @@
using System;
using UnityEngine;
using UnityEngine.Pool;
namespace Patterns_And_Principles.Patterns.Object_Pool_Pattern.UnityObjectPool.Script
{
public class Bullet : MonoBehaviour
{
[SerializeField]
private float speed;
private IObjectPool<Bullet> bulletPool;
private void OnBecameInvisible()
{
bulletPool.Release(this);
}
private void Update()
{
gameObject.transform.Translate(Vector3.right * speed * Time.deltaTime);
}
public void SetPool(IObjectPool<Bullet> _bulletPool)
{
bulletPool = _bulletPool;
}
}
}

View file

@ -0,0 +1,3 @@
fileFormatVersion: 2
guid: 83de7980998f472bb8ac78ba90b22889
timeCreated: 1773067108

View file

@ -0,0 +1,56 @@
using System;
using UnityEngine;
using UnityEngine.Pool;
namespace Patterns_And_Principles.Patterns.Object_Pool_Pattern.UnityObjectPool.Script
{
public class Launcher : MonoBehaviour
{
[SerializeField]
private Bullet bulletPrefab;
[SerializeField]
private int maxPoolSize = 10;
private IObjectPool<Bullet> _bulletPool;
private void Awake()
{
_bulletPool = new ObjectPool<Bullet>(createFunc: OnCreate, actionOnGet: OnGet, actionOnRelease: OnRelase,
actionOnDestroy: OnDestroy, maxSize: maxPoolSize);
}
private Bullet OnCreate()
{
Bullet bullet = Instantiate(bulletPrefab, transform.position, transform.rotation);
bullet.SetPool(_bulletPool);
return bullet;
}
private void OnGet(Bullet bullet)
{
bullet.gameObject.SetActive(true);
bullet.gameObject.transform.position = transform.position;
}
private void OnRelase(Bullet bullet)
{
bullet.gameObject.SetActive(false);
}
private void OnDestroy(Bullet bullet)
{
Destroy(bullet.gameObject);
}
private void Update()
{
if (Input.GetKeyDown(KeyCode.Space))
{
_bulletPool.Get();
}
}
}
}

View file

@ -0,0 +1,3 @@
fileFormatVersion: 2
guid: f76260f329eb4bda8ac263bb42a2bf8f
timeCreated: 1773067035

View file

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

View file

@ -9,35 +9,35 @@ EditorUserSettings:
value: 18134705175a055722080a3115371d4a0d55006876786860616b0471b8b07a68ffab74f9ee2a3a30300cea1a11320d0beb1a0c25f7060f494b4cc80018eb09361fc211cb1f862d19c51d19dcc413d6ade0d8ddfcddf9f4d9d29195fcfde6ebeae6f0a9c9afa6f8c5b89ff7a1aacececac4eba4d7c9d28bda
flags: 0
RecentlyUsedSceneGuid-0:
value: 5b085703000c580b5e580d7b43770e44154f4128782a74622c7b1860b4b1313e
flags: 0
RecentlyUsedSceneGuid-1:
value: 525051045457085f09080f2148730b4414154c7d742b7e687e7f1e60e3b26439
flags: 0
RecentlyUsedSceneGuid-2:
value: 0008525551515d0b0c56557214270a4414151a7a7e7d7466287c1b62b3b06c6f
flags: 0
RecentlyUsedSceneGuid-3:
RecentlyUsedSceneGuid-1:
value: 06070c56510d5859095f592646250a44144e197f2a71243378281c6ae1b53060
flags: 0
RecentlyUsedSceneGuid-4:
RecentlyUsedSceneGuid-2:
value: 0707065706560d0a09575472437109444f1540787d2922662f284d67e6b53768
flags: 0
RecentlyUsedSceneGuid-5:
RecentlyUsedSceneGuid-3:
value: 5700500303560d0f555b092448760e4415154b7b2f2a76692c791936bbb4646b
flags: 0
RecentlyUsedSceneGuid-6:
RecentlyUsedSceneGuid-4:
value: 07090c02040d0b0b09590e2647770b44434f1c78292922347d2c4a31e6e66c3a
flags: 0
RecentlyUsedSceneGuid-7:
RecentlyUsedSceneGuid-5:
value: 5001575e00560a5f5a5658234877074842161b72797b24617b2c1c6be7b4663e
flags: 0
RecentlyUsedSceneGuid-8:
RecentlyUsedSceneGuid-6:
value: 06090c535d035b09585b0f7415205e4442164a2b7f7977672f2f4967e1e6646e
flags: 0
RecentlyUsedSceneGuid-9:
RecentlyUsedSceneGuid-7:
value: 5501000452055b035b0a0e2115760944464e4c7f7f2927347d2a1e62b3b5356b
flags: 0
RecentlyUsedSceneGuid-8:
value: 0252515555015f0d0f085c24427a5e41134f4d727a78706579714e6bb0b5656a
flags: 0
RecentlyUsedSceneGuid-9:
value: 0609575504540b5d5d5f582341770f134f4f4f722a7172617a7e4d61bbe43261
flags: 0
lightmappingBakingProfile:
value: 51
flags: 0

View file

@ -17,9 +17,9 @@ MonoBehaviour:
x: 1984
y: 81
width: 1920
height: 912
height: 955
m_ShowMode: 4
m_Title: Scene
m_Title: Game
m_RootView: {fileID: 6}
m_MinSize: {x: 875, y: 300}
m_MaxSize: {x: 10000, y: 10000}
@ -41,8 +41,8 @@ MonoBehaviour:
serializedVersion: 2
x: 0
y: 0
width: 818
height: 856
width: 609
height: 899
m_MinSize: {x: 201, y: 226}
m_MaxSize: {x: 4001, y: 4026}
m_ActualView: {fileID: 23}
@ -66,9 +66,9 @@ MonoBehaviour:
m_Position:
serializedVersion: 2
x: 0
y: 503
width: 368
height: 353
y: 528
width: 446
height: 371
m_MinSize: {x: 102, y: 126}
m_MaxSize: {x: 4002, y: 4026}
m_ActualView: {fileID: 18}
@ -94,9 +94,9 @@ MonoBehaviour:
m_Position:
serializedVersion: 2
x: 0
y: 328
width: 329
height: 528
y: 523
width: 264
height: 376
m_MinSize: {x: 232, y: 276}
m_MaxSize: {x: 10002, y: 10026}
m_ActualView: {fileID: 21}
@ -121,14 +121,14 @@ MonoBehaviour:
- {fileID: 4}
m_Position:
serializedVersion: 2
x: 1186
x: 1055
y: 0
width: 329
height: 856
width: 264
height: 899
m_MinSize: {x: 100, y: 100}
m_MaxSize: {x: 8096, y: 16192}
vertical: 1
controlID: 77
controlID: 73
draggingID: 0
--- !u!114 &6
MonoBehaviour:
@ -151,7 +151,7 @@ MonoBehaviour:
x: 0
y: 0
width: 1920
height: 912
height: 955
m_MinSize: {x: 875, y: 300}
m_MaxSize: {x: 10000, y: 10000}
m_UseTopView: 1
@ -202,11 +202,11 @@ MonoBehaviour:
x: 0
y: 36
width: 1920
height: 856
height: 899
m_MinSize: {x: 400, y: 100}
m_MaxSize: {x: 32384, y: 16192}
vertical: 0
controlID: 163
controlID: 39
draggingID: 0
--- !u!114 &9
MonoBehaviour:
@ -224,7 +224,7 @@ MonoBehaviour:
m_Position:
serializedVersion: 2
x: 0
y: 892
y: 935
width: 1920
height: 20
m_MinSize: {x: 0, y: 0}
@ -246,14 +246,14 @@ MonoBehaviour:
- {fileID: 3}
m_Position:
serializedVersion: 2
x: 818
x: 609
y: 0
width: 368
height: 856
width: 446
height: 899
m_MinSize: {x: 100, y: 100}
m_MaxSize: {x: 8096, y: 16192}
vertical: 1
controlID: 20
controlID: 40
draggingID: 0
--- !u!114 &11
MonoBehaviour:
@ -272,8 +272,8 @@ MonoBehaviour:
serializedVersion: 2
x: 0
y: 0
width: 329
height: 328
width: 264
height: 523
m_MinSize: {x: 202, y: 226}
m_MaxSize: {x: 4002, y: 4026}
m_ActualView: {fileID: 19}
@ -296,10 +296,10 @@ MonoBehaviour:
m_Children: []
m_Position:
serializedVersion: 2
x: 1515
x: 1319
y: 0
width: 405
height: 856
width: 601
height: 899
m_MinSize: {x: 276, y: 76}
m_MaxSize: {x: 4001, y: 4026}
m_ActualView: {fileID: 20}
@ -325,8 +325,8 @@ MonoBehaviour:
serializedVersion: 2
x: 0
y: 0
width: 368
height: 503
width: 446
height: 528
m_MinSize: {x: 202, y: 226}
m_MaxSize: {x: 4002, y: 4026}
m_ActualView: {fileID: 22}
@ -1467,7 +1467,7 @@ MonoBehaviour:
m_OverlaysVisible: 1
m_LockTracker:
m_IsLocked: 0
m_LastSelectedObjectID: -61948
m_LastSelectedObjectID: -2566
--- !u!114 &18
MonoBehaviour:
m_ObjectHideFlags: 52
@ -1490,9 +1490,9 @@ MonoBehaviour:
m_Pos:
serializedVersion: 2
x: 1
y: 527
width: 366
height: 327
y: 552
width: 444
height: 345
m_SerializedDataModeController:
m_DataMode: 0
m_PreferredDataMode: 0
@ -1527,8 +1527,8 @@ MonoBehaviour:
serializedVersion: 2
x: 1
y: 24
width: 327
height: 302
width: 262
height: 497
m_SerializedDataModeController:
m_DataMode: 0
m_PreferredDataMode: 0
@ -1545,7 +1545,7 @@ MonoBehaviour:
scrollPos: {x: 0, y: 0}
m_SelectedIDs:
m_LastClickedID: 0
m_ExpandedIDs: 14fbffff
m_ExpandedIDs: f6f7ffff14fbffff
m_RenameOverlay:
m_UserAcceptedRename: 0
m_Name:
@ -1562,7 +1562,7 @@ MonoBehaviour:
m_OriginalEventType: 11
m_IsRenamingFilename: 0
m_TrimLeadingAndTrailingWhitespace: 0
m_ClientGUIView: {fileID: 11}
m_ClientGUIView: {fileID: 0}
m_SearchString:
m_ExpandedScenes: []
m_CurrenRootInstanceID: 0
@ -1591,10 +1591,10 @@ MonoBehaviour:
m_TextWithWhitespace: "Inspector\u200B"
m_Pos:
serializedVersion: 2
x: 1516
x: 1320
y: 24
width: 404
height: 830
width: 600
height: 873
m_SerializedDataModeController:
m_DataMode: 0
m_PreferredDataMode: 0
@ -1641,9 +1641,9 @@ MonoBehaviour:
m_Pos:
serializedVersion: 2
x: 1
y: 352
width: 327
height: 502
y: 547
width: 262
height: 350
m_SerializedDataModeController:
m_DataMode: 0
m_PreferredDataMode: 0
@ -1665,8 +1665,7 @@ MonoBehaviour:
m_ShowAllHits: 0
m_SkipHidden: 0
m_SearchArea: 1
m_Folders:
- Assets/Patterns_And_Principles/Patterns/The State Pattern
m_Folders: []
m_Globs: []
m_ProductIds:
m_AnyWithAssetOrigin: 0
@ -1685,7 +1684,7 @@ MonoBehaviour:
scrollPos: {x: 0, y: 0}
m_SelectedIDs: 6edd0000
m_LastClickedID: 56686
m_ExpandedIDs: 00000000c8ba0000caba0000ccba0000ceba0000d0ba0000d2ba0000d4ba0000d6ba0000d8ba0000daba0000dcba0000deba0000e0ba0000e2ba0000e4ba0000e6ba0000e8ba0000eaba0000ecba0000eeba0000f0ba0000f2ba0000f4ba0000f6ba0000f8ba0000faba0000fcba0000feba000000bb000002bb000004bb0000
m_ExpandedIDs: 0000000034ba000036ba000038ba00003aba00003cba00003eba000040ba000042ba000044ba000046ba000048ba00004aba00004cba00004eba000050ba000052ba000054ba000056ba000058ba00005aba00005cba00005eba000060ba000062ba0000
m_RenameOverlay:
m_UserAcceptedRename: 0
m_Name:
@ -1714,7 +1713,7 @@ MonoBehaviour:
scrollPos: {x: 0, y: 0}
m_SelectedIDs:
m_LastClickedID: 0
m_ExpandedIDs: 00000000c8ba0000caba0000ccba0000ceba0000d0ba0000d2ba0000d4ba0000d6ba0000d8ba0000daba0000dcba0000deba0000e0ba0000e2ba0000e4ba0000e6ba0000e8ba0000eaba0000ecba0000eeba0000f0ba0000f2ba0000f4ba0000f6ba0000f8ba0000faba0000fcba0000feba000000bb000002bb000004bb0000
m_ExpandedIDs: 0000000034ba000036ba000038ba00003aba00003cba00003eba000040ba000042ba000044ba000046ba000048ba00004aba00004cba00004eba000050ba000052ba000054ba000056ba000058ba00005aba00005cba00005eba000060ba000062ba0000
m_RenameOverlay:
m_UserAcceptedRename: 0
m_Name:
@ -1731,7 +1730,7 @@ MonoBehaviour:
m_OriginalEventType: 11
m_IsRenamingFilename: 1
m_TrimLeadingAndTrailingWhitespace: 0
m_ClientGUIView: {fileID: 4}
m_ClientGUIView: {fileID: 0}
m_SearchString:
m_CreateAssetUtility:
m_EndAction: {fileID: 0}
@ -1795,8 +1794,8 @@ MonoBehaviour:
serializedVersion: 2
x: 1
y: 24
width: 366
height: 477
width: 444
height: 502
m_SerializedDataModeController:
m_DataMode: 0
m_PreferredDataMode: 0
@ -2119,12 +2118,12 @@ MonoBehaviour:
displayed: 1
id: AINavigationOverlay
index: 12
contents: '{"m_Layout":4,"m_Collapsed":false,"m_Floating":false,"m_FloatingSnapOffset":{"x":24.0,"y":48.0},"m_SnapOffsetDelta":{"x":0.0,"y":0.0},"m_FloatingSnapCorner":0,"m_Size":{"x":0.0,"y":0.0},"m_SizeOverridden":false}'
contents: '{"m_Layout":4,"m_Collapsed":false,"m_Floating":false,"m_FloatingSnapOffset":{"x":-207.0,"y":-242.0},"m_SnapOffsetDelta":{"x":0.0,"y":0.0},"m_FloatingSnapCorner":3,"m_Size":{"x":0.0,"y":0.0},"m_SizeOverridden":false}'
floating: 0
collapsed: 0
snapOffset: {x: 24, y: 48}
snapOffset: {x: -207, y: -242}
snapOffsetDelta: {x: 0, y: 0}
snapCorner: 0
snapCorner: 3
layout: 4
size: {x: 0, y: 0}
sizeOverridden: 0
@ -2337,9 +2336,9 @@ MonoBehaviour:
m_AudioPlay: 0
m_DebugDrawModesUseInteractiveLightBakingData: 0
m_Position:
m_Target: {x: -0.20674646, y: -1.7343022, z: 0.9531889}
m_Target: {x: 611.6606, y: 0.1708087, z: -1.0270149}
speed: 2
m_Value: {x: -0.20674646, y: -1.7343022, z: 0.9531889}
m_Value: {x: 611.6606, y: 0.1708087, z: -1.0270149}
m_RenderMode: 0
m_CameraMode:
drawMode: 0
@ -2385,13 +2384,13 @@ MonoBehaviour:
m_GridAxis: 1
m_gridOpacity: 0.5
m_Rotation:
m_Target: {x: 0.24075477, y: -0.10111068, z: 0.02522438, w: 0.96498036}
m_Target: {x: 0.024966173, y: 0.9648456, z: -0.099560186, w: 0.2419491}
speed: 2
m_Value: {x: -0.24075477, y: 0.10111068, z: -0.02522438, w: -0.9649803}
m_Value: {x: 0.024966173, y: 0.96484566, z: -0.099560186, w: 0.2419491}
m_Size:
m_Target: 2.9988112
m_Target: 0.8660254
speed: 2
m_Value: 2.9988112
m_Value: 0.8660254
m_Ortho:
m_Target: 0
speed: 2
@ -2448,8 +2447,8 @@ MonoBehaviour:
serializedVersion: 2
x: 0
y: 24
width: 817
height: 830
width: 608
height: 873
m_SerializedDataModeController:
m_DataMode: 0
m_PreferredDataMode: 0
@ -2505,10 +2504,10 @@ MonoBehaviour:
serializedVersion: 2
x: 0
y: 21
width: 817
height: 809
m_Scale: {x: 0.42552084, y: 0.42552084}
m_Translation: {x: 408.5, y: 404.5}
width: 608
height: 852
m_Scale: {x: 0.31666666, y: 0.31666666}
m_Translation: {x: 304, y: 426}
m_MarginLeft: 0
m_MarginRight: 0
m_MarginTop: 0
@ -2516,12 +2515,12 @@ MonoBehaviour:
m_LastShownAreaInsideMargins:
serializedVersion: 2
x: -960
y: -950.59973
y: -1345.2632
width: 1920
height: 1901.1995
height: 2690.5264
m_MinimalGUI: 1
m_defaultScale: 0.42552084
m_LastWindowPixelSize: {x: 817, y: 830}
m_defaultScale: 0.31666666
m_LastWindowPixelSize: {x: 608, y: 873}
m_ClearInEditMode: 1
m_NoCameraWarning: 1
m_LowResolutionForAspectRatios: 01000000000000000000