diff --git a/.idea/.idea.GameOff2024/.idea/.gitignore b/.idea/.idea.GameOff2024/.idea/.gitignore
new file mode 100644
index 0000000..4685f1c
--- /dev/null
+++ b/.idea/.idea.GameOff2024/.idea/.gitignore
@@ -0,0 +1,13 @@
+# Default ignored files
+/shelf/
+/workspace.xml
+# Rider ignored files
+/.idea.GameOff2024.iml
+/contentModel.xml
+/modules.xml
+/projectSettingsUpdater.xml
+# Editor-based HTTP Client requests
+/httpRequests/
+# Datasource local storage ignored files
+/dataSources/
+/dataSources.local.xml
diff --git a/.idea/.idea.GameOff2024/.idea/indexLayout.xml b/.idea/.idea.GameOff2024/.idea/indexLayout.xml
new file mode 100644
index 0000000..7b08163
--- /dev/null
+++ b/.idea/.idea.GameOff2024/.idea/indexLayout.xml
@@ -0,0 +1,8 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/.idea.GameOff2024/.idea/vcs.xml b/.idea/.idea.GameOff2024/.idea/vcs.xml
new file mode 100644
index 0000000..35eb1dd
--- /dev/null
+++ b/.idea/.idea.GameOff2024/.idea/vcs.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Assets/Arts.meta b/Assets/Arts.meta
new file mode 100644
index 0000000..8337b67
--- /dev/null
+++ b/Assets/Arts.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 8060806f9eb0c134e84427047e4c8178
+folderAsset: yes
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Arts/rtaImage.png b/Assets/Arts/rtaImage.png
new file mode 100644
index 0000000..854c48e
Binary files /dev/null and b/Assets/Arts/rtaImage.png differ
diff --git a/Assets/Arts/rtaImage.png.meta b/Assets/Arts/rtaImage.png.meta
new file mode 100644
index 0000000..a35e0c7
--- /dev/null
+++ b/Assets/Arts/rtaImage.png.meta
@@ -0,0 +1,114 @@
+fileFormatVersion: 2
+guid: 963d42bfaa82c3842b3a09438eb1e58b
+TextureImporter:
+ internalIDToNameTable: []
+ externalObjects: {}
+ serializedVersion: 13
+ mipmaps:
+ mipMapMode: 0
+ enableMipMap: 1
+ sRGBTexture: 1
+ linearTexture: 0
+ fadeOut: 0
+ borderMipMap: 0
+ mipMapsPreserveCoverage: 0
+ alphaTestReferenceValue: 0.5
+ mipMapFadeDistanceStart: 1
+ mipMapFadeDistanceEnd: 3
+ bumpmap:
+ convertToNormalMap: 0
+ externalNormalMap: 0
+ heightScale: 0.25
+ normalMapFilter: 0
+ flipGreenChannel: 0
+ isReadable: 0
+ streamingMipmaps: 0
+ streamingMipmapsPriority: 0
+ vTOnly: 0
+ ignoreMipmapLimit: 0
+ grayScaleToAlpha: 0
+ generateCubemap: 6
+ cubemapConvolution: 0
+ seamlessCubemap: 0
+ textureFormat: 1
+ maxTextureSize: 2048
+ textureSettings:
+ serializedVersion: 2
+ filterMode: 1
+ aniso: 1
+ mipBias: 0
+ wrapU: 0
+ wrapV: 0
+ wrapW: 0
+ nPOTScale: 1
+ lightmap: 0
+ compressionQuality: 50
+ spriteMode: 0
+ spriteExtrude: 1
+ spriteMeshType: 1
+ alignment: 0
+ spritePivot: {x: 0.5, y: 0.5}
+ spritePixelsToUnits: 100
+ spriteBorder: {x: 0, y: 0, z: 0, w: 0}
+ spriteGenerateFallbackPhysicsShape: 1
+ alphaUsage: 1
+ alphaIsTransparency: 0
+ spriteTessellationDetail: -1
+ textureType: 0
+ textureShape: 1
+ singleChannelComponent: 0
+ flipbookRows: 1
+ flipbookColumns: 1
+ maxTextureSizeSet: 0
+ compressionQualitySet: 0
+ textureFormatSet: 0
+ ignorePngGamma: 0
+ applyGammaDecoding: 0
+ swizzle: 50462976
+ cookieLightType: 0
+ platformSettings:
+ - serializedVersion: 3
+ buildTarget: DefaultTexturePlatform
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ - serializedVersion: 3
+ buildTarget: Standalone
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ spriteSheet:
+ serializedVersion: 2
+ sprites: []
+ outline: []
+ physicsShape: []
+ bones: []
+ spriteID:
+ internalID: 0
+ vertices: []
+ indices:
+ edges: []
+ weights: []
+ secondaryTextures: []
+ nameFileIdTable: {}
+ mipmapLimitGroupName:
+ pSDRemoveMatte: 0
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Scenes/Samir.unity b/Assets/Scenes/Samir.unity
index 5347af5..2861004 100644
--- a/Assets/Scenes/Samir.unity
+++ b/Assets/Scenes/Samir.unity
@@ -383,7 +383,7 @@ GameObject:
m_Component:
- component: {fileID: 130761953}
m_Layer: 0
- m_Name: ------------------------------ (3)
+ m_Name: ------------------------------
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
@@ -583,55 +583,6 @@ MeshFilter:
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 188866862}
m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0}
---- !u!1 &228618184
-GameObject:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- serializedVersion: 6
- m_Component:
- - component: {fileID: 228618186}
- - component: {fileID: 228618185}
- m_Layer: 0
- m_Name: Global Volume (1)
- m_TagString: Untagged
- m_Icon: {fileID: 0}
- m_NavMeshLayer: 0
- m_StaticEditorFlags: 0
- m_IsActive: 1
---- !u!114 &228618185
-MonoBehaviour:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 228618184}
- m_Enabled: 1
- m_EditorHideFlags: 0
- m_Script: {fileID: 11500000, guid: 172515602e62fb746b5d573b38a5fe58, type: 3}
- m_Name:
- m_EditorClassIdentifier:
- m_IsGlobal: 1
- priority: 0
- blendDistance: 0
- weight: 1
- sharedProfile: {fileID: 11400000, guid: a6560a915ef98420e9faacc1c7438823, type: 2}
---- !u!4 &228618186
-Transform:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 228618184}
- 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!1001 &256841826
PrefabInstance:
m_ObjectHideFlags: 0
@@ -790,7 +741,7 @@ GameObject:
m_Component:
- component: {fileID: 298469752}
m_Layer: 0
- m_Name: ------------------------------ (4)
+ m_Name: ------------------------------
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
@@ -1892,124 +1843,6 @@ MeshFilter:
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 882270497}
m_Mesh: {fileID: 10209, guid: 0000000000000000e000000000000000, type: 0}
---- !u!1 &927214180
-GameObject:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- serializedVersion: 6
- m_Component:
- - component: {fileID: 927214183}
- - component: {fileID: 927214182}
- - component: {fileID: 927214181}
- m_Layer: 0
- m_Name: Directional Light (1)
- m_TagString: Untagged
- m_Icon: {fileID: 0}
- m_NavMeshLayer: 0
- m_StaticEditorFlags: 0
- m_IsActive: 1
---- !u!114 &927214181
-MonoBehaviour:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 927214180}
- 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: 1
---- !u!108 &927214182
-Light:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 927214180}
- m_Enabled: 1
- serializedVersion: 10
- m_Type: 1
- m_Shape: 0
- m_Color: {r: 1, g: 1, b: 1, a: 1}
- m_Intensity: 2
- 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: 5000
- m_UseColorTemperature: 1
- m_BoundingSphereOverride: {x: 0, y: 0, z: 0, w: 0}
- m_UseBoundingSphereOverride: 0
- m_UseViewFrustumForShadowCasterCull: 1
- m_ShadowRadius: 0
- m_ShadowAngle: 0
---- !u!4 &927214183
-Transform:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 927214180}
- 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!1 &985646259
GameObject:
m_ObjectHideFlags: 0
@@ -2125,7 +1958,7 @@ GameObject:
m_Component:
- component: {fileID: 992135812}
m_Layer: 0
- m_Name: ------------------------------ (2)
+ m_Name: ------------------------------
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
@@ -2261,7 +2094,7 @@ GameObject:
m_Component:
- component: {fileID: 1196902883}
m_Layer: 0
- m_Name: ------------------------------ (1)
+ m_Name: ------------------------------
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
@@ -2745,6 +2578,63 @@ Transform:
type: 3}
m_PrefabInstance: {fileID: 1674755498}
m_PrefabAsset: {fileID: 0}
+--- !u!1 &1721698428
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 1721698429}
+ - component: {fileID: 1721698431}
+ - component: {fileID: 1721698430}
+ m_Layer: 0
+ m_Name: PlayerMain
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &1721698429
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1721698428}
+ 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 &1721698430
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1721698428}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: d61d4174f1cd4d2580207590e6fc05e5, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+--- !u!114 &1721698431
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1721698428}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 45f6ccbbf842ceb47bfe1cc19085daa0, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
--- !u!1001 &1823285417
PrefabInstance:
m_ObjectHideFlags: 0
@@ -2855,143 +2745,6 @@ Transform:
- {fileID: 110478556}
m_Father: {fileID: 334916790}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
---- !u!1 &1904174023
-GameObject:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- serializedVersion: 6
- m_Component:
- - component: {fileID: 1904174027}
- - component: {fileID: 1904174026}
- - component: {fileID: 1904174025}
- - component: {fileID: 1904174024}
- m_Layer: 0
- m_Name: Main Camera (1)
- m_TagString: MainCamera
- m_Icon: {fileID: 0}
- m_NavMeshLayer: 0
- m_StaticEditorFlags: 0
- m_IsActive: 1
---- !u!114 &1904174024
-MonoBehaviour:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 1904174023}
- 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: 1
- 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!81 &1904174025
-AudioListener:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 1904174023}
- m_Enabled: 1
---- !u!20 &1904174026
-Camera:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 1904174023}
- 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 &1904174027
-Transform:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 1904174023}
- 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 &1952830668
GameObject:
m_ObjectHideFlags: 0
@@ -3142,7 +2895,7 @@ GameObject:
m_Component:
- component: {fileID: 1986501444}
m_Layer: 0
- m_Name: ------------------------------ (5)
+ m_Name: ------------------------------
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
@@ -3315,16 +3068,14 @@ Transform:
SceneRoots:
m_ObjectHideFlags: 0
m_Roots:
- - {fileID: 330585546}
- {fileID: 410087041}
- {fileID: 832575519}
- {fileID: 298469752}
+ - {fileID: 330585546}
- {fileID: 130761953}
- - {fileID: 228618186}
- {fileID: 1196902883}
- - {fileID: 927214183}
- - {fileID: 1904174027}
+ - {fileID: 1721698429}
- {fileID: 1986501444}
- - {fileID: 1456785129}
- {fileID: 1958973072}
+ - {fileID: 1456785129}
- {fileID: 992135812}
diff --git a/Assets/Scripts.meta b/Assets/Scripts.meta
new file mode 100644
index 0000000..4ed0682
--- /dev/null
+++ b/Assets/Scripts.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: b87703aab76e8794a83b185a0fca70e2
+folderAsset: yes
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Scripts/Core.meta b/Assets/Scripts/Core.meta
new file mode 100644
index 0000000..1a37616
--- /dev/null
+++ b/Assets/Scripts/Core.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: e55b9bc4f8975c243805eaabaf1ff8e7
+folderAsset: yes
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Scripts/Core/PlayerMain.cs b/Assets/Scripts/Core/PlayerMain.cs
new file mode 100644
index 0000000..89d89ee
--- /dev/null
+++ b/Assets/Scripts/Core/PlayerMain.cs
@@ -0,0 +1,36 @@
+using System;
+using GameOff.Player;
+using UnityEngine;
+
+namespace GameOff.Core
+{
+ public class PlayerMain : MonoBehaviour
+ {
+ public static PlayerMain Instance { get; private set; }
+
+ private PlayerInputHandler _inputHandler;
+
+ private void Awake()
+ {
+ if (Instance)
+ {
+ Debug.LogError($"PlayerMain already exist! {transform}");
+ Destroy(gameObject);
+ return;
+ }
+
+ Instance = this;
+ _inputHandler = GetComponent();
+ }
+
+ private void Start()
+ {
+ _inputHandler.OnChangeState += InputHandler_OnChangeState;
+ }
+
+ private void InputHandler_OnChangeState(object sender, EventArgs e)
+ {
+ Debug.Log("Change");
+ }
+ }
+}
diff --git a/Assets/Scripts/Core/PlayerMain.cs.meta b/Assets/Scripts/Core/PlayerMain.cs.meta
new file mode 100644
index 0000000..09f1dc7
--- /dev/null
+++ b/Assets/Scripts/Core/PlayerMain.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 45f6ccbbf842ceb47bfe1cc19085daa0
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Scripts/GameInputs.cs b/Assets/Scripts/GameInputs.cs
new file mode 100644
index 0000000..05367fa
--- /dev/null
+++ b/Assets/Scripts/GameInputs.cs
@@ -0,0 +1,211 @@
+//------------------------------------------------------------------------------
+//
+// This code was auto-generated by com.unity.inputsystem:InputActionCodeGenerator
+// version 1.7.0
+// from Assets/Scripts/GameInputs.inputactions
+//
+// Changes to this file may cause incorrect behavior and will be lost if
+// the code is regenerated.
+//
+//------------------------------------------------------------------------------
+
+using System;
+using System.Collections;
+using System.Collections.Generic;
+using UnityEngine.InputSystem;
+using UnityEngine.InputSystem.Utilities;
+
+namespace GameOff
+{
+ public partial class @GameInputs: IInputActionCollection2, IDisposable
+ {
+ public InputActionAsset asset { get; }
+ public @GameInputs()
+ {
+ asset = InputActionAsset.FromJson(@"{
+ ""name"": ""GameInputs"",
+ ""maps"": [
+ {
+ ""name"": ""Player"",
+ ""id"": ""da3c3195-8f3d-4214-8868-75a6a6838cd9"",
+ ""actions"": [
+ {
+ ""name"": ""ChangeState"",
+ ""type"": ""Button"",
+ ""id"": ""e68b25df-26d5-444f-b400-30fd417637ce"",
+ ""expectedControlType"": ""Button"",
+ ""processors"": """",
+ ""interactions"": ""Press"",
+ ""initialStateCheck"": false
+ },
+ {
+ ""name"": ""Mouse"",
+ ""type"": ""Value"",
+ ""id"": ""3d58ba17-a8e1-422d-a9b3-3da61a7f20aa"",
+ ""expectedControlType"": ""Vector2"",
+ ""processors"": """",
+ ""interactions"": """",
+ ""initialStateCheck"": true
+ }
+ ],
+ ""bindings"": [
+ {
+ ""name"": """",
+ ""id"": ""1e6edfed-a1c7-4203-b3ea-9ce526d76276"",
+ ""path"": ""/rightButton"",
+ ""interactions"": """",
+ ""processors"": """",
+ ""groups"": """",
+ ""action"": ""ChangeState"",
+ ""isComposite"": false,
+ ""isPartOfComposite"": false
+ },
+ {
+ ""name"": """",
+ ""id"": ""b66eea24-e7df-47d5-b151-f38e9fc3284d"",
+ ""path"": ""/p"",
+ ""interactions"": """",
+ ""processors"": """",
+ ""groups"": """",
+ ""action"": ""ChangeState"",
+ ""isComposite"": false,
+ ""isPartOfComposite"": false
+ },
+ {
+ ""name"": """",
+ ""id"": ""ca799d40-b531-4015-96e7-37944f95d190"",
+ ""path"": ""/delta"",
+ ""interactions"": """",
+ ""processors"": """",
+ ""groups"": """",
+ ""action"": ""Mouse"",
+ ""isComposite"": false,
+ ""isPartOfComposite"": false
+ }
+ ]
+ }
+ ],
+ ""controlSchemes"": []
+}");
+ // Player
+ m_Player = asset.FindActionMap("Player", throwIfNotFound: true);
+ m_Player_ChangeState = m_Player.FindAction("ChangeState", throwIfNotFound: true);
+ m_Player_Mouse = m_Player.FindAction("Mouse", throwIfNotFound: true);
+ }
+
+ public void Dispose()
+ {
+ UnityEngine.Object.Destroy(asset);
+ }
+
+ public InputBinding? bindingMask
+ {
+ get => asset.bindingMask;
+ set => asset.bindingMask = value;
+ }
+
+ public ReadOnlyArray? devices
+ {
+ get => asset.devices;
+ set => asset.devices = value;
+ }
+
+ public ReadOnlyArray controlSchemes => asset.controlSchemes;
+
+ public bool Contains(InputAction action)
+ {
+ return asset.Contains(action);
+ }
+
+ public IEnumerator GetEnumerator()
+ {
+ return asset.GetEnumerator();
+ }
+
+ IEnumerator IEnumerable.GetEnumerator()
+ {
+ return GetEnumerator();
+ }
+
+ public void Enable()
+ {
+ asset.Enable();
+ }
+
+ public void Disable()
+ {
+ asset.Disable();
+ }
+
+ public IEnumerable bindings => asset.bindings;
+
+ public InputAction FindAction(string actionNameOrId, bool throwIfNotFound = false)
+ {
+ return asset.FindAction(actionNameOrId, throwIfNotFound);
+ }
+
+ public int FindBinding(InputBinding bindingMask, out InputAction action)
+ {
+ return asset.FindBinding(bindingMask, out action);
+ }
+
+ // Player
+ private readonly InputActionMap m_Player;
+ private List m_PlayerActionsCallbackInterfaces = new List();
+ private readonly InputAction m_Player_ChangeState;
+ private readonly InputAction m_Player_Mouse;
+ public struct PlayerActions
+ {
+ private @GameInputs m_Wrapper;
+ public PlayerActions(@GameInputs wrapper) { m_Wrapper = wrapper; }
+ public InputAction @ChangeState => m_Wrapper.m_Player_ChangeState;
+ public InputAction @Mouse => m_Wrapper.m_Player_Mouse;
+ public InputActionMap Get() { return m_Wrapper.m_Player; }
+ public void Enable() { Get().Enable(); }
+ public void Disable() { Get().Disable(); }
+ public bool enabled => Get().enabled;
+ public static implicit operator InputActionMap(PlayerActions set) { return set.Get(); }
+ public void AddCallbacks(IPlayerActions instance)
+ {
+ if (instance == null || m_Wrapper.m_PlayerActionsCallbackInterfaces.Contains(instance)) return;
+ m_Wrapper.m_PlayerActionsCallbackInterfaces.Add(instance);
+ @ChangeState.started += instance.OnChangeState;
+ @ChangeState.performed += instance.OnChangeState;
+ @ChangeState.canceled += instance.OnChangeState;
+ @Mouse.started += instance.OnMouse;
+ @Mouse.performed += instance.OnMouse;
+ @Mouse.canceled += instance.OnMouse;
+ }
+
+ private void UnregisterCallbacks(IPlayerActions instance)
+ {
+ @ChangeState.started -= instance.OnChangeState;
+ @ChangeState.performed -= instance.OnChangeState;
+ @ChangeState.canceled -= instance.OnChangeState;
+ @Mouse.started -= instance.OnMouse;
+ @Mouse.performed -= instance.OnMouse;
+ @Mouse.canceled -= instance.OnMouse;
+ }
+
+ public void RemoveCallbacks(IPlayerActions instance)
+ {
+ if (m_Wrapper.m_PlayerActionsCallbackInterfaces.Remove(instance))
+ UnregisterCallbacks(instance);
+ }
+
+ public void SetCallbacks(IPlayerActions instance)
+ {
+ foreach (var item in m_Wrapper.m_PlayerActionsCallbackInterfaces)
+ UnregisterCallbacks(item);
+ m_Wrapper.m_PlayerActionsCallbackInterfaces.Clear();
+ AddCallbacks(instance);
+ }
+ }
+ public PlayerActions @Player => new PlayerActions(this);
+ public interface IPlayerActions
+ {
+ void OnChangeState(InputAction.CallbackContext context);
+ void OnMouse(InputAction.CallbackContext context);
+ }
+ }
+}
diff --git a/Assets/Scripts/GameInputs.cs.meta b/Assets/Scripts/GameInputs.cs.meta
new file mode 100644
index 0000000..1075c69
--- /dev/null
+++ b/Assets/Scripts/GameInputs.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: b3e32bc8ce956e74ca68e325d0705d2e
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Scripts/GameInputs.inputactions b/Assets/Scripts/GameInputs.inputactions
new file mode 100644
index 0000000..530f953
--- /dev/null
+++ b/Assets/Scripts/GameInputs.inputactions
@@ -0,0 +1,65 @@
+{
+ "name": "GameInputs",
+ "maps": [
+ {
+ "name": "Player",
+ "id": "da3c3195-8f3d-4214-8868-75a6a6838cd9",
+ "actions": [
+ {
+ "name": "ChangeState",
+ "type": "Button",
+ "id": "e68b25df-26d5-444f-b400-30fd417637ce",
+ "expectedControlType": "Button",
+ "processors": "",
+ "interactions": "Press",
+ "initialStateCheck": false
+ },
+ {
+ "name": "Mouse",
+ "type": "Value",
+ "id": "3d58ba17-a8e1-422d-a9b3-3da61a7f20aa",
+ "expectedControlType": "Vector2",
+ "processors": "",
+ "interactions": "",
+ "initialStateCheck": true
+ }
+ ],
+ "bindings": [
+ {
+ "name": "",
+ "id": "1e6edfed-a1c7-4203-b3ea-9ce526d76276",
+ "path": "/rightButton",
+ "interactions": "",
+ "processors": "",
+ "groups": "",
+ "action": "ChangeState",
+ "isComposite": false,
+ "isPartOfComposite": false
+ },
+ {
+ "name": "",
+ "id": "b66eea24-e7df-47d5-b151-f38e9fc3284d",
+ "path": "/p",
+ "interactions": "",
+ "processors": "",
+ "groups": "",
+ "action": "ChangeState",
+ "isComposite": false,
+ "isPartOfComposite": false
+ },
+ {
+ "name": "",
+ "id": "ca799d40-b531-4015-96e7-37944f95d190",
+ "path": "/delta",
+ "interactions": "",
+ "processors": "",
+ "groups": "",
+ "action": "Mouse",
+ "isComposite": false,
+ "isPartOfComposite": false
+ }
+ ]
+ }
+ ],
+ "controlSchemes": []
+}
\ No newline at end of file
diff --git a/Assets/Scripts/GameInputs.inputactions.meta b/Assets/Scripts/GameInputs.inputactions.meta
new file mode 100644
index 0000000..ca333a4
--- /dev/null
+++ b/Assets/Scripts/GameInputs.inputactions.meta
@@ -0,0 +1,14 @@
+fileFormatVersion: 2
+guid: 35ca33ed60b96a241b8d6f30c00f034e
+ScriptedImporter:
+ internalIDToNameTable: []
+ externalObjects: {}
+ serializedVersion: 2
+ userData:
+ assetBundleName:
+ assetBundleVariant:
+ script: {fileID: 11500000, guid: 8404be70184654265930450def6a9037, type: 3}
+ generateWrapperCode: 1
+ wrapperCodePath:
+ wrapperClassName:
+ wrapperCodeNamespace: GameOff
diff --git a/Assets/Scripts/Player.meta b/Assets/Scripts/Player.meta
new file mode 100644
index 0000000..d68e55a
--- /dev/null
+++ b/Assets/Scripts/Player.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 77dbb1aace9dca6439bd5e4c4962984a
+folderAsset: yes
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Scripts/Player/PlayerInputHandler.cs b/Assets/Scripts/Player/PlayerInputHandler.cs
new file mode 100644
index 0000000..d2c25a4
--- /dev/null
+++ b/Assets/Scripts/Player/PlayerInputHandler.cs
@@ -0,0 +1,40 @@
+using System;
+using UnityEngine;
+
+namespace GameOff.Player
+{
+ [DefaultExecutionOrder(-100)]
+
+ public class PlayerInputHandler: MonoBehaviour
+ {
+ public event EventHandler OnChangeState;
+ public Vector2 Mouse { get; private set; }
+
+ private GameInputs _input;
+
+ private void Awake()
+ {
+ _input = new GameInputs();
+ }
+
+ private void OnEnable()
+ {
+ _input.Player.Enable();
+ }
+
+ private void OnDisable()
+ {
+ _input.Player.Disable();
+ }
+
+ private void Start()
+ {
+ _input.Player.ChangeState.performed += _ => OnChangeState?.Invoke(this, EventArgs.Empty);
+ }
+
+ private void Update()
+ {
+ Mouse = _input.Player.Mouse.ReadValue();
+ }
+ }
+}
\ No newline at end of file
diff --git a/Assets/Scripts/Player/PlayerInputHandler.cs.meta b/Assets/Scripts/Player/PlayerInputHandler.cs.meta
new file mode 100644
index 0000000..6f501e6
--- /dev/null
+++ b/Assets/Scripts/Player/PlayerInputHandler.cs.meta
@@ -0,0 +1,3 @@
+fileFormatVersion: 2
+guid: d61d4174f1cd4d2580207590e6fc05e5
+timeCreated: 1731003487
\ No newline at end of file