feat(Observer Pattern): Add interface-based basic example

This commit is contained in:
EmirHanMamak 2026-02-28 20:19:44 +03:00
parent b92742cbee
commit 5ca32b3ea3
18 changed files with 1206 additions and 168 deletions

View file

@ -0,0 +1,882 @@
%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: 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 &178921307
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 178921311}
- component: {fileID: 178921310}
- component: {fileID: 178921309}
- component: {fileID: 178921308}
m_Layer: 5
m_Name: Canvas
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!114 &178921308
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 178921307}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: dc42784cf147c0c48a680349fa168899, type: 3}
m_Name:
m_EditorClassIdentifier:
m_IgnoreReversedGraphics: 1
m_BlockingObjects: 0
m_BlockingMask:
serializedVersion: 2
m_Bits: 4294967295
--- !u!114 &178921309
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 178921307}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 0cd44c1031e13a943bb63640046fad76, type: 3}
m_Name:
m_EditorClassIdentifier:
m_UiScaleMode: 1
m_ReferencePixelsPerUnit: 100
m_ScaleFactor: 1
m_ReferenceResolution: {x: 1920, y: 1080}
m_ScreenMatchMode: 0
m_MatchWidthOrHeight: 0.5
m_PhysicalUnit: 3
m_FallbackScreenDPI: 96
m_DefaultSpriteDPI: 96
m_DynamicPixelsPerUnit: 1
m_PresetInfoIsWorld: 0
--- !u!223 &178921310
Canvas:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 178921307}
m_Enabled: 1
serializedVersion: 3
m_RenderMode: 0
m_Camera: {fileID: 0}
m_PlaneDistance: 100
m_PixelPerfect: 0
m_ReceivesEvents: 1
m_OverrideSorting: 0
m_OverridePixelPerfect: 0
m_SortingBucketNormalizedSize: 0
m_VertexColorAlwaysGammaSpace: 0
m_AdditionalShaderChannelsFlag: 25
m_UpdateRectTransformForStandalone: 0
m_SortingLayerID: 0
m_SortingOrder: 0
m_TargetDisplay: 0
--- !u!224 &178921311
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 178921307}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 0, y: 0, z: 0}
m_ConstrainProportionsScale: 0
m_Children:
- {fileID: 1311607723}
m_Father: {fileID: 0}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 0, y: 0}
m_Pivot: {x: 0, y: 0}
--- !u!1 &317155085
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 317155086}
- component: {fileID: 317155087}
m_Layer: 0
m_Name: Subject
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!4 &317155086
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 317155085}
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 &317155087
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 317155085}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 640ba1e7e68e4944a75083374afc0bfb, type: 3}
m_Name:
m_EditorClassIdentifier:
--- !u!1 &633334822
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 633334825}
- component: {fileID: 633334824}
- component: {fileID: 633334823}
m_Layer: 0
m_Name: EventSystem
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!114 &633334823
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 633334822}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 01614664b831546d2ae94a42149d80ac, type: 3}
m_Name:
m_EditorClassIdentifier:
m_SendPointerHoverToParent: 1
m_MoveRepeatDelay: 0.5
m_MoveRepeatRate: 0.1
m_XRTrackingOrigin: {fileID: 0}
m_ActionsAsset: {fileID: -944628639613478452, guid: ca9f5fa95ffab41fb9a615ab714db018, type: 3}
m_PointAction: {fileID: -1654692200621890270, guid: ca9f5fa95ffab41fb9a615ab714db018, type: 3}
m_MoveAction: {fileID: -8784545083839296357, guid: ca9f5fa95ffab41fb9a615ab714db018, type: 3}
m_SubmitAction: {fileID: 392368643174621059, guid: ca9f5fa95ffab41fb9a615ab714db018, type: 3}
m_CancelAction: {fileID: 7727032971491509709, guid: ca9f5fa95ffab41fb9a615ab714db018, type: 3}
m_LeftClickAction: {fileID: 3001919216989983466, guid: ca9f5fa95ffab41fb9a615ab714db018, type: 3}
m_MiddleClickAction: {fileID: -2185481485913320682, guid: ca9f5fa95ffab41fb9a615ab714db018, type: 3}
m_RightClickAction: {fileID: -4090225696740746782, guid: ca9f5fa95ffab41fb9a615ab714db018, type: 3}
m_ScrollWheelAction: {fileID: 6240969308177333660, guid: ca9f5fa95ffab41fb9a615ab714db018, type: 3}
m_TrackedDevicePositionAction: {fileID: 6564999863303420839, guid: ca9f5fa95ffab41fb9a615ab714db018, type: 3}
m_TrackedDeviceOrientationAction: {fileID: 7970375526676320489, guid: ca9f5fa95ffab41fb9a615ab714db018, type: 3}
m_DeselectOnBackgroundClick: 1
m_PointerBehavior: 0
m_CursorLockBehavior: 0
m_ScrollDeltaPerTick: 6
--- !u!114 &633334824
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 633334822}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 76c392e42b5098c458856cdf6ecaaaa1, type: 3}
m_Name:
m_EditorClassIdentifier:
m_FirstSelected: {fileID: 0}
m_sendNavigationEvents: 1
m_DragThreshold: 10
--- !u!4 &633334825
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 633334822}
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!1 &709525733
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 709525734}
- component: {fileID: 709525737}
- component: {fileID: 709525736}
- component: {fileID: 709525735}
m_Layer: 5
m_Name: SendObserver_Button
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &709525734
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 709525733}
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:
- {fileID: 723379235}
m_Father: {fileID: 1311607723}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0.5}
m_AnchorMax: {x: 1, y: 0.5}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 0, y: 100}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!114 &709525735
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 709525733}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Navigation:
m_Mode: 3
m_WrapAround: 0
m_SelectOnUp: {fileID: 0}
m_SelectOnDown: {fileID: 0}
m_SelectOnLeft: {fileID: 0}
m_SelectOnRight: {fileID: 0}
m_Transition: 1
m_Colors:
m_NormalColor: {r: 1, g: 1, b: 1, a: 1}
m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1}
m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608}
m_ColorMultiplier: 1
m_FadeDuration: 0.1
m_SpriteState:
m_HighlightedSprite: {fileID: 0}
m_PressedSprite: {fileID: 0}
m_SelectedSprite: {fileID: 0}
m_DisabledSprite: {fileID: 0}
m_AnimationTriggers:
m_NormalTrigger: Normal
m_HighlightedTrigger: Highlighted
m_PressedTrigger: Pressed
m_SelectedTrigger: Selected
m_DisabledTrigger: Disabled
m_Interactable: 1
m_TargetGraphic: {fileID: 709525736}
m_OnClick:
m_PersistentCalls:
m_Calls:
- m_Target: {fileID: 317155087}
m_TargetAssemblyTypeName: Patterns_And_Principles.Patterns.The_Observer_Pattern.WithoutEvent.Script._01_BasicExample.Subject,
Assembly-CSharp
m_MethodName: NotifyObservers
m_Mode: 1
m_Arguments:
m_ObjectArgument: {fileID: 0}
m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine
m_IntArgument: 0
m_FloatArgument: 0
m_StringArgument:
m_BoolArgument: 0
m_CallState: 2
--- !u!114 &709525736
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 709525733}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Material: {fileID: 0}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_RaycastTarget: 1
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
m_Maskable: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0}
m_Type: 1
m_PreserveAspect: 0
m_FillCenter: 1
m_FillMethod: 4
m_FillAmount: 1
m_FillClockwise: 1
m_FillOrigin: 0
m_UseSpriteMesh: 0
m_PixelsPerUnitMultiplier: 1
--- !u!222 &709525737
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 709525733}
m_CullTransparentMesh: 1
--- !u!1 &723379234
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 723379235}
- component: {fileID: 723379237}
- component: {fileID: 723379236}
m_Layer: 5
m_Name: SendObserver_Text
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &723379235
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 723379234}
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: 709525734}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: -30, y: 0}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!114 &723379236
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 723379234}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Material: {fileID: 0}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_RaycastTarget: 1
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
m_Maskable: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_text: Send Observer
m_isRightToLeft: 0
m_fontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2}
m_sharedMaterial: {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2}
m_fontSharedMaterials: []
m_fontMaterial: {fileID: 0}
m_fontMaterials: []
m_fontColor32:
serializedVersion: 2
rgba: 4281479730
m_fontColor: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1}
m_enableVertexGradient: 0
m_colorMode: 3
m_fontColorGradient:
topLeft: {r: 1, g: 1, b: 1, a: 1}
topRight: {r: 1, g: 1, b: 1, a: 1}
bottomLeft: {r: 1, g: 1, b: 1, a: 1}
bottomRight: {r: 1, g: 1, b: 1, a: 1}
m_fontColorGradientPreset: {fileID: 0}
m_spriteAsset: {fileID: 0}
m_tintAllSprites: 0
m_StyleSheet: {fileID: 0}
m_TextStyleHashCode: -1183493901
m_overrideHtmlColors: 0
m_faceColor:
serializedVersion: 2
rgba: 4294967295
m_fontSize: 72
m_fontSizeBase: 24
m_fontWeight: 400
m_enableAutoSizing: 1
m_fontSizeMin: 18
m_fontSizeMax: 72
m_fontStyle: 0
m_HorizontalAlignment: 2
m_VerticalAlignment: 512
m_textAlignment: 65535
m_characterSpacing: 0
m_wordSpacing: 0
m_lineSpacing: 0
m_lineSpacingMax: 0
m_paragraphSpacing: 0
m_charWidthMaxAdj: 0
m_TextWrappingMode: 1
m_wordWrappingRatios: 0.4
m_overflowMode: 0
m_linkedTextComponent: {fileID: 0}
parentLinkedComponent: {fileID: 0}
m_enableKerning: 0
m_ActiveFontFeatures: 6e72656b
m_enableExtraPadding: 0
checkPaddingRequired: 0
m_isRichText: 1
m_EmojiFallbackSupport: 1
m_parseCtrlCharacters: 1
m_isOrthographic: 1
m_isCullingEnabled: 0
m_horizontalMapping: 0
m_verticalMapping: 0
m_uvLineOffset: 0
m_geometrySortingOrder: 0
m_IsTextObjectScaleStatic: 0
m_VertexBufferAutoSizeReduction: 0
m_useMaxVisibleDescender: 1
m_pageToDisplay: 1
m_margin: {x: 0, y: 0, z: 0, w: 0}
m_isUsingLegacyAnimationComponent: 0
m_isVolumetricText: 0
m_hasFontAssetChanged: 0
m_baseMaterial: {fileID: 0}
m_maskOffset: {x: 0, y: 0, z: 0, w: 0}
--- !u!222 &723379237
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 723379234}
m_CullTransparentMesh: 1
--- !u!1 &1001003873
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 1001003876}
- component: {fileID: 1001003875}
- component: {fileID: 1001003874}
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 &1001003874
AudioListener:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1001003873}
m_Enabled: 1
--- !u!20 &1001003875
Camera:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1001003873}
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 &1001003876
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1001003873}
serializedVersion: 2
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 1, z: -10}
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!1 &1311607722
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 1311607723}
- component: {fileID: 1311607725}
- component: {fileID: 1311607724}
m_Layer: 5
m_Name: Panel
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &1311607723
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1311607722}
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:
- {fileID: 709525734}
m_Father: {fileID: 178921311}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0.5, y: 0.5}
m_AnchorMax: {x: 0.5, y: 0.5}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 600, y: 500}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!114 &1311607724
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1311607722}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Material: {fileID: 0}
m_Color: {r: 0.8301887, g: 0, b: 0, a: 0.85882354}
m_RaycastTarget: 1
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
m_Maskable: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0}
m_Type: 1
m_PreserveAspect: 0
m_FillCenter: 1
m_FillMethod: 4
m_FillAmount: 1
m_FillClockwise: 1
m_FillOrigin: 0
m_UseSpriteMesh: 0
m_PixelsPerUnitMultiplier: 1
--- !u!222 &1311607725
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1311607722}
m_CullTransparentMesh: 1
--- !u!1 &1426944358
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 1426944360}
- component: {fileID: 1426944359}
m_Layer: 0
m_Name: Observer
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!114 &1426944359
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1426944358}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: fb4cff4763604a049288e93a158de7a7, type: 3}
m_Name:
m_EditorClassIdentifier:
--- !u!4 &1426944360
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1426944358}
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!1 &1763845187
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 1763845189}
- component: {fileID: 1763845188}
m_Layer: 0
m_Name: Observer2
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!114 &1763845188
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1763845187}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 4feb73425b2a41d4a248339ce74e50cd, type: 3}
m_Name:
m_EditorClassIdentifier:
--- !u!4 &1763845189
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1763845187}
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!1660057539 &9223372036854775807
SceneRoots:
m_ObjectHideFlags: 0
m_Roots:
- {fileID: 1001003876}
- {fileID: 178921311}
- {fileID: 633334825}
- {fileID: 317155086}
- {fileID: 1426944360}
- {fileID: 1763845189}

View file

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

View file

@ -0,0 +1,3 @@
fileFormatVersion: 2
guid: 8490c08fc0254778b332676f8eecd5a1
timeCreated: 1772292150

View file

@ -0,0 +1,7 @@
namespace Patterns_And_Principles.Patterns.The_Observer_Pattern.WithoutEvent.Script._01_BasicExample.Interface
{
public interface IObserver
{
public void Notify(ISubject subject);
}
}

View file

@ -0,0 +1,3 @@
fileFormatVersion: 2
guid: 91e73992c3cc44c0945f774c1649dc6f
timeCreated: 1772292185

View file

@ -0,0 +1,9 @@
namespace Patterns_And_Principles.Patterns.The_Observer_Pattern.WithoutEvent.Script._01_BasicExample.Interface
{
public interface ISubject
{
public void Attach(IObserver observer);
public void Detach(IObserver observer);
public void NotifyObservers();
}
}

View file

@ -0,0 +1,3 @@
fileFormatVersion: 2
guid: f34f0d523fdc43a7aae1e3b7d9c68740
timeCreated: 1772292204

View file

@ -0,0 +1,34 @@
using System;
using Patterns_And_Principles.Patterns.The_Observer_Pattern.WithoutEvent.Script._01_BasicExample.Interface;
using UnityEngine;
namespace Patterns_And_Principles.Patterns.The_Observer_Pattern.WithoutEvent.Script._01_BasicExample
{
public class Observer : MonoBehaviour, IObserver
{
private Subject _subject;
private void OnEnable()
{
_subject.Attach(this);
}
private void OnDisable()
{
_subject.Detach(this);
}
private void Awake()
{
_subject = FindObjectOfType<Subject>();
}
public void Notify(ISubject subject)
{
if (subject != null)
{
Debug.Log("Observer Notify");
}
}
}
}

View file

@ -0,0 +1,3 @@
fileFormatVersion: 2
guid: fb4cff4763604a049288e93a158de7a7
timeCreated: 1772292396

View file

@ -0,0 +1,34 @@
using System;
using Patterns_And_Principles.Patterns.The_Observer_Pattern.WithoutEvent.Script._01_BasicExample.Interface;
using UnityEngine;
namespace Patterns_And_Principles.Patterns.The_Observer_Pattern.WithoutEvent.Script._01_BasicExample
{
public class Observer2 : MonoBehaviour, IObserver
{
private Subject _subject;
private void OnEnable()
{
_subject.Attach(this);
}
private void OnDisable()
{
_subject.Detach(this);
}
private void Awake()
{
_subject = FindObjectOfType<Subject>();
}
public void Notify(ISubject subject)
{
if (subject != null)
{
Debug.Log("Observer2 Notify");
}
}
}
}

View file

@ -0,0 +1,3 @@
fileFormatVersion: 2
guid: 4feb73425b2a41d4a248339ce74e50cd
timeCreated: 1772293634

View file

@ -0,0 +1,38 @@
using System.Collections.Generic;
using Patterns_And_Principles.Patterns.The_Observer_Pattern.WithoutEvent.Script._01_BasicExample.Interface;
using UnityEngine;
namespace Patterns_And_Principles.Patterns.The_Observer_Pattern.WithoutEvent.Script._01_BasicExample
{
public class Subject : MonoBehaviour, ISubject
{
private readonly List<IObserver> _observers = new List<IObserver>();
public void Attach(IObserver observer)
{
_observers.Add(observer);
}
public void Detach(IObserver observer)
{
_observers.Remove(observer);
}
public void NotifyObservers()
{
foreach (var observer in _observers)
{
observer.Notify(this);
}
}
private void Update()
{
// Press Space to trigger notification
if (Input.GetKeyDown(KeyCode.Space))
{
Debug.Log("Subject triggered!");
NotifyObservers();
}
}
}
}

View file

@ -0,0 +1,3 @@
fileFormatVersion: 2
guid: 640ba1e7e68e4944a75083374afc0bfb
timeCreated: 1772292380

View file

@ -1,20 +1,23 @@
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
namespace Patterns_And_Principles.Patterns.The_Observer_Pattern.WithoutEvent.Script._02_RealWorldUsage.Abstract
{
public abstract class Subject : MonoBehaviour
{
private readonly ArrayList _observers = new ArrayList();
private readonly List<Observer> _observers = new List<Observer>();
public void Attach(Observer observer)
{
_observers.Add(observer);
}
public void Detach(Observer observer)
{
_observers.Remove(observer);
}
public void NotifyObservers()
{
foreach (Observer observer in _observers)

View file

@ -22,6 +22,7 @@ namespace Patterns_And_Principles.Patterns.The_Observer_Pattern.WithoutEvent.Scr
_bikeController.TakeDamage(15f);
}
}
if (GUILayout.Button("Toggle Turbo"))
{
if (_bikeController)

View file

@ -69,6 +69,7 @@ namespace Patterns_And_Principles.Patterns.The_Observer_Pattern.WithoutEvent.Scr
{
IsTurboOn = !IsTurboOn;
}
NotifyObservers();
}

View file

@ -20,6 +20,9 @@ EditorUserSettings:
RecentlyUsedSceneGuid-3:
value: 5303045607030b5f5b0c0a2313275a444315492f2d7e24627a2f1f36b7b53260
flags: 0
RecentlyUsedSceneGuid-4:
value: 010957035d025059550c5b7048750944134e4b787d7a2369792b446bbbb3326e
flags: 0
lightmappingBakingProfile:
value: 51
flags: 0

View file

@ -19,7 +19,7 @@ MonoBehaviour:
width: 1920
height: 989
m_ShowMode: 4
m_Title: Hierarchy
m_Title: Game
m_RootView: {fileID: 6}
m_MinSize: {x: 875, y: 300}
m_MaxSize: {x: 10000, y: 10000}
@ -41,13 +41,13 @@ MonoBehaviour:
serializedVersion: 2
x: 0
y: 0
width: 404
width: 1043
height: 933
m_MinSize: {x: 201, y: 226}
m_MaxSize: {x: 4001, y: 4026}
m_ActualView: {fileID: 22}
m_ActualView: {fileID: 23}
m_Panes:
- {fileID: 22}
- {fileID: 23}
m_Selected: 0
m_LastSelected: 0
--- !u!114 &3
@ -67,7 +67,7 @@ MonoBehaviour:
serializedVersion: 2
x: 0
y: 535
width: 452
width: 224
height: 398
m_MinSize: {x: 102, y: 126}
m_MaxSize: {x: 4002, y: 4026}
@ -94,9 +94,9 @@ MonoBehaviour:
m_Position:
serializedVersion: 2
x: 0
y: 531
width: 683
height: 402
y: 363
width: 272
height: 570
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: 856
x: 1267
y: 0
width: 683
width: 272
height: 933
m_MinSize: {x: 100, y: 100}
m_MaxSize: {x: 8096, y: 16192}
vertical: 1
controlID: 93
controlID: 77
draggingID: 0
--- !u!114 &6
MonoBehaviour:
@ -206,7 +206,7 @@ MonoBehaviour:
m_MinSize: {x: 400, y: 100}
m_MaxSize: {x: 32384, y: 16192}
vertical: 0
controlID: 126
controlID: 39
draggingID: 0
--- !u!114 &9
MonoBehaviour:
@ -246,9 +246,9 @@ MonoBehaviour:
- {fileID: 3}
m_Position:
serializedVersion: 2
x: 404
x: 1043
y: 0
width: 452
width: 224
height: 933
m_MinSize: {x: 100, y: 100}
m_MaxSize: {x: 8096, y: 16192}
@ -272,8 +272,8 @@ MonoBehaviour:
serializedVersion: 2
x: 0
y: 0
width: 683
height: 531
width: 272
height: 363
m_MinSize: {x: 202, y: 226}
m_MaxSize: {x: 4002, y: 4026}
m_ActualView: {fileID: 19}
@ -325,13 +325,13 @@ MonoBehaviour:
serializedVersion: 2
x: 0
y: 0
width: 452
width: 224
height: 535
m_MinSize: {x: 202, y: 226}
m_MaxSize: {x: 4002, y: 4026}
m_ActualView: {fileID: 23}
m_ActualView: {fileID: 22}
m_Panes:
- {fileID: 23}
- {fileID: 22}
- {fileID: 15}
m_Selected: 0
m_LastSelected: 1
@ -490,7 +490,7 @@ MonoBehaviour:
m_PaneScroll: {x: 0, y: 0}
m_ViewType: 1
updateViewLive: 0
m_CurrentFrameIndex: 315
m_CurrentFrameIndex: -1
m_HierarchyOverruledThreadFromSelection: 0
m_ProfilerViewFilteringOptions: 1
m_FrameDataHierarchyView:
@ -639,7 +639,7 @@ MonoBehaviour:
(Press
''F'' for frame selection)'
m_TextWithWhitespace:
m_TextWithWhitespace: "Called From\u200B"
contextMenuText:
headerTextAlignment: 0
sortingArrowAlignment: 2
@ -655,7 +655,7 @@ MonoBehaviour:
m_Text: Calls
m_Image: {fileID: 0}
m_Tooltip: Total number of calls in a selected frame
m_TextWithWhitespace:
m_TextWithWhitespace: "Calls\u200B"
contextMenuText:
headerTextAlignment: 0
sortingArrowAlignment: 2
@ -671,7 +671,7 @@ MonoBehaviour:
m_Text: GC Alloc
m_Image: {fileID: 0}
m_Tooltip:
m_TextWithWhitespace:
m_TextWithWhitespace: "GC Alloc\u200B"
contextMenuText:
headerTextAlignment: 0
sortingArrowAlignment: 2
@ -687,7 +687,7 @@ MonoBehaviour:
m_Text: Time ms
m_Image: {fileID: 0}
m_Tooltip: Total time the selected function spends within a parent
m_TextWithWhitespace:
m_TextWithWhitespace: "Time ms\u200B"
contextMenuText:
headerTextAlignment: 0
sortingArrowAlignment: 2
@ -704,7 +704,7 @@ MonoBehaviour:
m_Image: {fileID: 0}
m_Tooltip: Shows how often the selected function was called from
the parent call
m_TextWithWhitespace:
m_TextWithWhitespace: "Time %\u200B"
contextMenuText:
headerTextAlignment: 0
sortingArrowAlignment: 2
@ -752,7 +752,7 @@ MonoBehaviour:
(Press
''F'' for frame selection)'
m_TextWithWhitespace:
m_TextWithWhitespace: "Called From\u200B"
contextMenuText:
headerTextAlignment: 0
sortingArrowAlignment: 2
@ -768,7 +768,7 @@ MonoBehaviour:
m_Text: Calls
m_Image: {fileID: 0}
m_Tooltip: Total number of calls in a selected frame
m_TextWithWhitespace:
m_TextWithWhitespace: "Calls\u200B"
contextMenuText:
headerTextAlignment: 0
sortingArrowAlignment: 2
@ -784,7 +784,7 @@ MonoBehaviour:
m_Text: GC Alloc
m_Image: {fileID: 0}
m_Tooltip:
m_TextWithWhitespace:
m_TextWithWhitespace: "GC Alloc\u200B"
contextMenuText:
headerTextAlignment: 0
sortingArrowAlignment: 2
@ -800,7 +800,7 @@ MonoBehaviour:
m_Text: Time ms
m_Image: {fileID: 0}
m_Tooltip: Total time the selected function spends within a parent
m_TextWithWhitespace:
m_TextWithWhitespace: "Time ms\u200B"
contextMenuText:
headerTextAlignment: 0
sortingArrowAlignment: 2
@ -817,7 +817,7 @@ MonoBehaviour:
m_Image: {fileID: 0}
m_Tooltip: Shows how often the selected function was called from
the parent call
m_TextWithWhitespace:
m_TextWithWhitespace: "Time %\u200B"
contextMenuText:
headerTextAlignment: 0
sortingArrowAlignment: 2
@ -991,7 +991,7 @@ MonoBehaviour:
(Press
''F'' for frame selection)'
m_TextWithWhitespace:
m_TextWithWhitespace: "Called From\u200B"
contextMenuText:
headerTextAlignment: 0
sortingArrowAlignment: 2
@ -1007,7 +1007,7 @@ MonoBehaviour:
m_Text: Calls
m_Image: {fileID: 0}
m_Tooltip: Total number of calls in a selected frame
m_TextWithWhitespace:
m_TextWithWhitespace: "Calls\u200B"
contextMenuText:
headerTextAlignment: 0
sortingArrowAlignment: 2
@ -1023,7 +1023,7 @@ MonoBehaviour:
m_Text: GC Alloc
m_Image: {fileID: 0}
m_Tooltip:
m_TextWithWhitespace:
m_TextWithWhitespace: "GC Alloc\u200B"
contextMenuText:
headerTextAlignment: 0
sortingArrowAlignment: 2
@ -1039,7 +1039,7 @@ MonoBehaviour:
m_Text: Time ms
m_Image: {fileID: 0}
m_Tooltip: Total time the selected function spends within a parent
m_TextWithWhitespace:
m_TextWithWhitespace: "Time ms\u200B"
contextMenuText:
headerTextAlignment: 0
sortingArrowAlignment: 2
@ -1056,7 +1056,7 @@ MonoBehaviour:
m_Image: {fileID: 0}
m_Tooltip: Shows how often the selected function was called from
the parent call
m_TextWithWhitespace:
m_TextWithWhitespace: "Time %\u200B"
contextMenuText:
headerTextAlignment: 0
sortingArrowAlignment: 2
@ -1104,7 +1104,7 @@ MonoBehaviour:
(Press
''F'' for frame selection)'
m_TextWithWhitespace:
m_TextWithWhitespace: "Called From\u200B"
contextMenuText:
headerTextAlignment: 0
sortingArrowAlignment: 2
@ -1120,7 +1120,7 @@ MonoBehaviour:
m_Text: Calls
m_Image: {fileID: 0}
m_Tooltip: Total number of calls in a selected frame
m_TextWithWhitespace:
m_TextWithWhitespace: "Calls\u200B"
contextMenuText:
headerTextAlignment: 0
sortingArrowAlignment: 2
@ -1136,7 +1136,7 @@ MonoBehaviour:
m_Text: GC Alloc
m_Image: {fileID: 0}
m_Tooltip:
m_TextWithWhitespace:
m_TextWithWhitespace: "GC Alloc\u200B"
contextMenuText:
headerTextAlignment: 0
sortingArrowAlignment: 2
@ -1152,7 +1152,7 @@ MonoBehaviour:
m_Text: Time ms
m_Image: {fileID: 0}
m_Tooltip: Total time the selected function spends within a parent
m_TextWithWhitespace:
m_TextWithWhitespace: "Time ms\u200B"
contextMenuText:
headerTextAlignment: 0
sortingArrowAlignment: 2
@ -1169,7 +1169,7 @@ MonoBehaviour:
m_Image: {fileID: 0}
m_Tooltip: Shows how often the selected function was called from
the parent call
m_TextWithWhitespace:
m_TextWithWhitespace: "Time %\u200B"
contextMenuText:
headerTextAlignment: 0
sortingArrowAlignment: 2
@ -1331,7 +1331,7 @@ MonoBehaviour:
m_OverlaysVisible: 1
m_LockTracker:
m_IsLocked: 0
m_LastSelectedObjectID: 0
m_LastSelectedObjectID: -35046
--- !u!114 &18
MonoBehaviour:
m_ObjectHideFlags: 52
@ -1355,7 +1355,7 @@ MonoBehaviour:
serializedVersion: 2
x: 1
y: 559
width: 450
width: 222
height: 372
m_SerializedDataModeController:
m_DataMode: 0
@ -1391,8 +1391,8 @@ MonoBehaviour:
serializedVersion: 2
x: 1
y: 24
width: 681
height: 505
width: 270
height: 337
m_SerializedDataModeController:
m_DataMode: 0
m_PreferredDataMode: 0
@ -1409,7 +1409,7 @@ MonoBehaviour:
scrollPos: {x: 0, y: 0}
m_SelectedIDs:
m_LastClickedID: 0
m_ExpandedIDs: 14fbffff
m_ExpandedIDs: 6e81ffff3082ffff9a92ffffee96ffff5ce3ffff12f2ffff04f3ffff14fbffff3eb9000050b90000
m_RenameOverlay:
m_UserAcceptedRename: 0
m_Name:
@ -1426,7 +1426,7 @@ MonoBehaviour:
m_OriginalEventType: 11
m_IsRenamingFilename: 0
m_TrimLeadingAndTrailingWhitespace: 0
m_ClientGUIView: {fileID: 0}
m_ClientGUIView: {fileID: 11}
m_SearchString:
m_ExpandedScenes: []
m_CurrenRootInstanceID: 0
@ -1473,7 +1473,7 @@ MonoBehaviour:
m_ObjectsLockedBeforeSerialization: []
m_InstanceIDsLockedBeforeSerialization:
m_PreviewResizer:
m_CachedPref: -160
m_CachedPref: 152
m_ControlHash: -371814159
m_PrefName: Preview_InspectorPreview
m_LastInspectedObjectInstanceID: -1
@ -1505,9 +1505,9 @@ MonoBehaviour:
m_Pos:
serializedVersion: 2
x: 1
y: 555
width: 681
height: 376
y: 387
width: 270
height: 544
m_SerializedDataModeController:
m_DataMode: 0
m_PreferredDataMode: 0
@ -1529,8 +1529,7 @@ MonoBehaviour:
m_ShowAllHits: 0
m_SkipHidden: 0
m_SearchArea: 1
m_Folders:
- Assets/Patterns_And_Principles/Patterns/The Observer Pattern/Scripts/WithoutEvent
m_Folders: []
m_Globs: []
m_ProductIds:
m_AnyWithAssetOrigin: 0
@ -1550,7 +1549,7 @@ MonoBehaviour:
scrollPos: {x: 0, y: 0}
m_SelectedIDs: 6edd0000
m_LastClickedID: 56686
m_ExpandedIDs: 0000000052b9000054b9000056b9000058b900005ab90000
m_ExpandedIDs: 00000000ceb90000d0b90000d2b90000d4b90000d6b90000d8b90000dab90000dcb90000deb90000e0b90000e2b90000e4b90000e6b90000e8b90000eab90000ecb90000eeb90000f0b90000f2b90000f4b90000f6b90000
m_RenameOverlay:
m_UserAcceptedRename: 0
m_Name:
@ -1576,10 +1575,10 @@ MonoBehaviour:
m_Icon: {fileID: 0}
m_ResourceFile:
m_AssetTreeState:
scrollPos: {x: 0, y: 0}
scrollPos: {x: 0, y: 60}
m_SelectedIDs:
m_LastClickedID: 0
m_ExpandedIDs: 0000000052b9000054b9000056b9000058b900005ab90000
m_ExpandedIDs: 00000000ceb90000d0b90000d2b90000d4b90000d6b90000d8b90000dab90000dcb90000deb90000e0b90000e2b90000e4b90000e6b90000e8b90000eab90000ecb90000eeb90000f0b90000f2b90000f4b90000f6b90000
m_RenameOverlay:
m_UserAcceptedRename: 0
m_Name:
@ -1638,107 +1637,6 @@ MonoBehaviour:
m_SkipHiddenPackages: 0
m_DirectoriesAreaWidth: 115
--- !u!114 &22
MonoBehaviour:
m_ObjectHideFlags: 52
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 0}
m_Enabled: 1
m_EditorHideFlags: 1
m_Script: {fileID: 12015, guid: 0000000000000000e000000000000000, type: 0}
m_Name:
m_EditorClassIdentifier:
m_MinSize: {x: 200, y: 200}
m_MaxSize: {x: 4000, y: 4000}
m_TitleContent:
m_Text: Game
m_Image: {fileID: -6423792434712278376, guid: 0000000000000000d000000000000000, type: 0}
m_Tooltip:
m_TextWithWhitespace: "Game\u200B"
m_Pos:
serializedVersion: 2
x: 0
y: 24
width: 403
height: 907
m_SerializedDataModeController:
m_DataMode: 0
m_PreferredDataMode: 0
m_SupportedDataModes:
isAutomatic: 1
m_ViewDataDictionary: {fileID: 0}
m_OverlayCanvas:
m_LastAppliedPresetName: Default
m_SaveData: []
m_ContainerData: []
m_OverlaysVisible: 1
m_SerializedViewNames: []
m_SerializedViewValues: []
m_PlayModeViewName: GameView
m_ShowGizmos: 0
m_TargetDisplay: 0
m_ClearColor: {r: 0, g: 0, b: 0, a: 0}
m_TargetSize: {x: 403, y: 886}
m_TextureFilterMode: 0
m_TextureHideFlags: 61
m_RenderIMGUI: 1
m_EnterPlayModeBehavior: 0
m_UseMipMap: 0
m_VSyncEnabled: 0
m_Gizmos: 0
m_Stats: 0
m_SelectedSizes: 00000000000000000000000000000000000000000000000000000000000000000000000000000000
m_ZoomArea:
m_HRangeLocked: 0
m_VRangeLocked: 0
hZoomLockedByDefault: 0
vZoomLockedByDefault: 0
m_HBaseRangeMin: -201.5
m_HBaseRangeMax: 201.5
m_VBaseRangeMin: -443
m_VBaseRangeMax: 443
m_HAllowExceedBaseRangeMin: 1
m_HAllowExceedBaseRangeMax: 1
m_VAllowExceedBaseRangeMin: 1
m_VAllowExceedBaseRangeMax: 1
m_ScaleWithWindow: 0
m_HSlider: 0
m_VSlider: 0
m_IgnoreScrollWheelUntilClicked: 0
m_EnableMouseInput: 1
m_EnableSliderZoomHorizontal: 0
m_EnableSliderZoomVertical: 0
m_UniformScale: 1
m_UpDirection: 1
m_DrawArea:
serializedVersion: 2
x: 0
y: 21
width: 403
height: 886
m_Scale: {x: 1, y: 1}
m_Translation: {x: 201.5, y: 443}
m_MarginLeft: 0
m_MarginRight: 0
m_MarginTop: 0
m_MarginBottom: 0
m_LastShownAreaInsideMargins:
serializedVersion: 2
x: -201.5
y: -443
width: 403
height: 886
m_MinimalGUI: 1
m_defaultScale: 1
m_LastWindowPixelSize: {x: 403, y: 907}
m_ClearInEditMode: 1
m_NoCameraWarning: 1
m_LowResolutionForAspectRatios: 00000000000000000000
m_XRRenderMode: 0
m_RenderTexture: {fileID: 0}
m_showToolbar: 1
--- !u!114 &23
MonoBehaviour:
m_ObjectHideFlags: 52
m_CorrespondingSourceObject: {fileID: 0}
@ -1761,7 +1659,7 @@ MonoBehaviour:
serializedVersion: 2
x: 1
y: 24
width: 450
width: 222
height: 509
m_SerializedDataModeController:
m_DataMode: 0
@ -1861,12 +1759,12 @@ MonoBehaviour:
displayed: 1
id: Orientation
index: 0
contents: '{"m_Layout":4,"m_Collapsed":false,"m_Floating":false,"m_FloatingSnapOffset":{"x":67.5,"y":-196.66665649414063},"m_SnapOffsetDelta":{"x":0.0,"y":0.0},"m_FloatingSnapCorner":2,"m_Size":{"x":0.0,"y":0.0},"m_SizeOverridden":false}'
contents: '{"m_Layout":4,"m_Collapsed":false,"m_Floating":false,"m_FloatingSnapOffset":{"x":-123.0,"y":-196.66665649414063},"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: 67.5, y: -196.66666}
snapOffset: {x: -123, y: -196.66666}
snapOffsetDelta: {x: 0, y: 0}
snapCorner: 2
snapCorner: 3
layout: 4
size: {x: 0, y: 0}
sizeOverridden: 0
@ -2085,10 +1983,10 @@ MonoBehaviour:
displayed: 1
id: AINavigationOverlay
index: 12
contents: '{"m_Layout":4,"m_Collapsed":false,"m_Floating":false,"m_FloatingSnapOffset":{"x":48.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":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}'
floating: 0
collapsed: 0
snapOffset: {x: 48, y: 48}
snapOffset: {x: 24, y: 48}
snapOffsetDelta: {x: 0, y: 0}
snapCorner: 0
layout: 4
@ -2303,9 +2201,9 @@ MonoBehaviour:
m_AudioPlay: 0
m_DebugDrawModesUseInteractiveLightBakingData: 0
m_Position:
m_Target: {x: 0, y: 0, z: 0}
m_Target: {x: 0, y: 1, z: -10}
speed: 2
m_Value: {x: 0, y: 0, z: 0}
m_Value: {x: 0, y: 1, z: -10}
m_RenderMode: 0
m_CameraMode:
drawMode: 0
@ -2355,9 +2253,9 @@ MonoBehaviour:
speed: 2
m_Value: {x: -0.08717229, y: 0.89959055, z: -0.21045254, w: -0.3726226}
m_Size:
m_Target: 10
m_Target: 12.124355
speed: 2
m_Value: 10
m_Value: 12.124355
m_Ortho:
m_Target: 0
speed: 2
@ -2378,7 +2276,7 @@ MonoBehaviour:
m_LastSceneViewRotation: {x: 0, y: 0, z: 0, w: 0}
m_LastSceneViewOrtho: 0
m_Viewpoint:
m_SceneView: {fileID: 23}
m_SceneView: {fileID: 22}
m_CameraOverscanSettings:
m_Opacity: 50
m_Scale: 1
@ -2391,3 +2289,106 @@ MonoBehaviour:
name: Contributors / Receivers
section: Lighting
m_ViewIsLockedToObject: 0
--- !u!114 &23
MonoBehaviour:
m_ObjectHideFlags: 52
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 0}
m_Enabled: 1
m_EditorHideFlags: 1
m_Script: {fileID: 12015, guid: 0000000000000000e000000000000000, type: 0}
m_Name:
m_EditorClassIdentifier:
m_MinSize: {x: 200, y: 200}
m_MaxSize: {x: 4000, y: 4000}
m_TitleContent:
m_Text: Game
m_Image: {fileID: -6423792434712278376, guid: 0000000000000000d000000000000000, type: 0}
m_Tooltip:
m_TextWithWhitespace: "Game\u200B"
m_Pos:
serializedVersion: 2
x: 0
y: 24
width: 1042
height: 907
m_SerializedDataModeController:
m_DataMode: 0
m_PreferredDataMode: 0
m_SupportedDataModes:
isAutomatic: 1
m_ViewDataDictionary: {fileID: 0}
m_OverlayCanvas:
m_LastAppliedPresetName: Default
m_SaveData: []
m_ContainerData: []
m_OverlaysVisible: 1
m_SerializedViewNames:
- UnityEditor.DeviceSimulation.SimulatorWindow
m_SerializedViewValues:
- F:\_Work\_PersonelWorks\Courses\Programming Design Patterns And Principles\Library\PlayModeViewStates\212fa1687647ce346b14859c39b974cb
m_PlayModeViewName: GameView
m_ShowGizmos: 0
m_TargetDisplay: 0
m_ClearColor: {r: 0, g: 0, b: 0, a: 0}
m_TargetSize: {x: 1920, y: 1080}
m_TextureFilterMode: 0
m_TextureHideFlags: 61
m_RenderIMGUI: 1
m_EnterPlayModeBehavior: 0
m_UseMipMap: 0
m_VSyncEnabled: 0
m_Gizmos: 0
m_Stats: 0
m_SelectedSizes: 03000000000000000000000000000000000000000000000000000000000000000000000000000000
m_ZoomArea:
m_HRangeLocked: 0
m_VRangeLocked: 0
hZoomLockedByDefault: 0
vZoomLockedByDefault: 0
m_HBaseRangeMin: -960
m_HBaseRangeMax: 960
m_VBaseRangeMin: -540
m_VBaseRangeMax: 540
m_HAllowExceedBaseRangeMin: 1
m_HAllowExceedBaseRangeMax: 1
m_VAllowExceedBaseRangeMin: 1
m_VAllowExceedBaseRangeMax: 1
m_ScaleWithWindow: 0
m_HSlider: 0
m_VSlider: 0
m_IgnoreScrollWheelUntilClicked: 0
m_EnableMouseInput: 1
m_EnableSliderZoomHorizontal: 0
m_EnableSliderZoomVertical: 0
m_UniformScale: 1
m_UpDirection: 1
m_DrawArea:
serializedVersion: 2
x: 0
y: 21
width: 1042
height: 886
m_Scale: {x: 0.54270834, y: 0.54270834}
m_Translation: {x: 521, y: 443}
m_MarginLeft: 0
m_MarginRight: 0
m_MarginTop: 0
m_MarginBottom: 0
m_LastShownAreaInsideMargins:
serializedVersion: 2
x: -960
y: -816.27637
width: 1920
height: 1632.5527
m_MinimalGUI: 1
m_defaultScale: 0.54270834
m_LastWindowPixelSize: {x: 1042, y: 907}
m_ClearInEditMode: 1
m_NoCameraWarning: 1
m_LowResolutionForAspectRatios: 01000000000000000000
m_XRRenderMode: 0
m_RenderTexture: {fileID: 0}
m_showToolbar: 1