From ff111d95db1878f9c35d99e7d4fa0b4d9a0de37c Mon Sep 17 00:00:00 2001 From: Carson Katri Date: Sat, 12 Jun 2021 00:30:21 -0400 Subject: Restructure scripts, improve locomotion, and add movement indicators --- Assets/Materials/Player.physicsMaterial2D | 11 + Assets/Materials/Player.physicsMaterial2D.meta | 8 + Assets/Prefabs/Player.prefab | 390 ++++++++++++++++++++- Assets/Scenes/Main.unity | 157 ++++++++- Assets/Scripts/AIController.cs | 16 - Assets/Scripts/AIController.cs.meta | 3 - Assets/Scripts/Controllers.meta | 3 + Assets/Scripts/Controllers/AIController.cs | 19 + Assets/Scripts/Controllers/AIController.cs.meta | 3 + Assets/Scripts/Controllers/CameraController.cs | 14 + .../Scripts/Controllers/CameraController.cs.meta | 11 + Assets/Scripts/Controllers/Player.meta | 3 + .../Scripts/Controllers/Player/PlayerController.cs | 75 ++++ .../Controllers/Player/PlayerController.cs.meta | 11 + Assets/Scripts/Controllers/Player/PlayerSegment.cs | 28 ++ .../Controllers/Player/PlayerSegment.cs.meta | 3 + Assets/Scripts/PlayerController.cs | 51 --- Assets/Scripts/PlayerController.cs.meta | 11 - Assets/Sprites/Buttons.png | Bin 0 -> 306 bytes Assets/Sprites/Buttons.png.meta | 216 ++++++++++++ 20 files changed, 939 insertions(+), 94 deletions(-) create mode 100644 Assets/Materials/Player.physicsMaterial2D create mode 100644 Assets/Materials/Player.physicsMaterial2D.meta delete mode 100644 Assets/Scripts/AIController.cs delete mode 100644 Assets/Scripts/AIController.cs.meta create mode 100644 Assets/Scripts/Controllers.meta create mode 100644 Assets/Scripts/Controllers/AIController.cs create mode 100644 Assets/Scripts/Controllers/AIController.cs.meta create mode 100644 Assets/Scripts/Controllers/CameraController.cs create mode 100644 Assets/Scripts/Controllers/CameraController.cs.meta create mode 100644 Assets/Scripts/Controllers/Player.meta create mode 100644 Assets/Scripts/Controllers/Player/PlayerController.cs create mode 100644 Assets/Scripts/Controllers/Player/PlayerController.cs.meta create mode 100644 Assets/Scripts/Controllers/Player/PlayerSegment.cs create mode 100644 Assets/Scripts/Controllers/Player/PlayerSegment.cs.meta delete mode 100644 Assets/Scripts/PlayerController.cs delete mode 100644 Assets/Scripts/PlayerController.cs.meta create mode 100644 Assets/Sprites/Buttons.png create mode 100644 Assets/Sprites/Buttons.png.meta diff --git a/Assets/Materials/Player.physicsMaterial2D b/Assets/Materials/Player.physicsMaterial2D new file mode 100644 index 0000000..f5cc0d0 --- /dev/null +++ b/Assets/Materials/Player.physicsMaterial2D @@ -0,0 +1,11 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!62 &6200000 +PhysicsMaterial2D: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: Player + friction: 0.2 + bounciness: 0 diff --git a/Assets/Materials/Player.physicsMaterial2D.meta b/Assets/Materials/Player.physicsMaterial2D.meta new file mode 100644 index 0000000..61858c9 --- /dev/null +++ b/Assets/Materials/Player.physicsMaterial2D.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 0510edd53d4374d57a2f5a5cc7c40766 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 6200000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Prefabs/Player.prefab b/Assets/Prefabs/Player.prefab index 725faff..4b92389 100644 --- a/Assets/Prefabs/Player.prefab +++ b/Assets/Prefabs/Player.prefab @@ -1,5 +1,251 @@ %YAML 1.1 %TAG !u! tag:unity3d.com,2011: +--- !u!1 &476429766403681147 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1299794603187148047} + - component: {fileID: 8177603981592965145} + m_Layer: 0 + m_Name: RightArrow + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 0 +--- !u!4 &1299794603187148047 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 476429766403681147} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 1.5, y: 0, z: 0} + m_LocalScale: {x: 6, y: 3, z: 1} + m_Children: [] + m_Father: {fileID: 6095859832867562448} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!212 &8177603981592965145 +SpriteRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 476429766403681147} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 0 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 10754, guid: 0000000000000000f000000000000000, type: 0} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_Sprite: {fileID: 2013261503205373015, guid: 4c50c736e129f4891bb6f68b964d823d, type: 3} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_FlipX: 0 + m_FlipY: 0 + m_DrawMode: 0 + m_Size: {x: 0.14, y: 0.14} + m_AdaptiveModeThreshold: 0.5 + m_SpriteTileMode: 0 + m_WasSpriteAssigned: 1 + m_MaskInteraction: 0 + m_SpriteSortPoint: 0 +--- !u!1 &5020703169596630212 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 5614014003094209757} + - component: {fileID: 9153823608011860787} + m_Layer: 0 + m_Name: LeftArrow + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 0 +--- !u!4 &5614014003094209757 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5020703169596630212} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: -1.5, y: 0, z: 0} + m_LocalScale: {x: 6, y: 3, z: 1} + m_Children: [] + m_Father: {fileID: 6095859832867562448} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!212 &9153823608011860787 +SpriteRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5020703169596630212} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 0 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 10754, guid: 0000000000000000f000000000000000, type: 0} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_Sprite: {fileID: -5402412272178277761, guid: 4c50c736e129f4891bb6f68b964d823d, type: 3} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_FlipX: 0 + m_FlipY: 0 + m_DrawMode: 0 + m_Size: {x: 0.14, y: 0.14} + m_AdaptiveModeThreshold: 0.5 + m_SpriteTileMode: 0 + m_WasSpriteAssigned: 1 + m_MaskInteraction: 0 + m_SpriteSortPoint: 0 +--- !u!1 &5321565721314628342 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1077578955052460591} + - component: {fileID: 3996879309566229940} + m_Layer: 0 + m_Name: A + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 0 +--- !u!4 &1077578955052460591 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5321565721314628342} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: -1.5, y: 0, z: 0} + m_LocalScale: {x: 6, y: 3, z: 1} + m_Children: [] + m_Father: {fileID: 6095859833589646295} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!212 &3996879309566229940 +SpriteRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5321565721314628342} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 0 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 10754, guid: 0000000000000000f000000000000000, type: 0} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_Sprite: {fileID: 8894201953851282084, guid: 4c50c736e129f4891bb6f68b964d823d, type: 3} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_FlipX: 0 + m_FlipY: 0 + m_DrawMode: 0 + m_Size: {x: 0.14, y: 0.14} + m_AdaptiveModeThreshold: 0.5 + m_SpriteTileMode: 0 + m_WasSpriteAssigned: 1 + m_MaskInteraction: 0 + m_SpriteSortPoint: 0 --- !u!1 &6095859832867562451 GameObject: m_ObjectHideFlags: 0 @@ -9,6 +255,7 @@ GameObject: serializedVersion: 6 m_Component: - component: {fileID: 6095859832867562448} + - component: {fileID: 6967752935869289387} - component: {fileID: 6095859832867562449} - component: {fileID: 6095859832867562452} - component: {fileID: 6095859832867562454} @@ -30,10 +277,31 @@ Transform: m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 1.3, z: 0} m_LocalScale: {x: 0.5, y: 1, z: 1} - m_Children: [] + m_Children: + - {fileID: 5614014003094209757} + - {fileID: 1299794603187148047} m_Father: {fileID: 6095859834264611321} m_RootOrder: 1 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &6967752935869289387 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6095859832867562451} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 99303295fe534f42863cd15bf22587f9, type: 3} + m_Name: + m_EditorClassIdentifier: + left: + keyCode: 276 + icon: {fileID: 5020703169596630212} + right: + keyCode: 275 + icon: {fileID: 476429766403681147} + forceOrigin: {x: 0, y: 0.5, z: 0} --- !u!212 &6095859832867562449 SpriteRenderer: m_ObjectHideFlags: 0 @@ -131,7 +399,7 @@ BoxCollider2D: m_AutoTiling: 0 serializedVersion: 2 m_Size: {x: 1, y: 1} - m_EdgeRadius: 0 + m_EdgeRadius: 0.05 --- !u!233 &6095859832867562455 HingeJoint2D: m_ObjectHideFlags: 0 @@ -175,7 +443,7 @@ GameObject: m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 - m_IsActive: 1 + m_IsActive: 0 --- !u!4 &6095859833293776206 Transform: m_ObjectHideFlags: 0 @@ -287,7 +555,7 @@ BoxCollider2D: m_AutoTiling: 0 serializedVersion: 2 m_Size: {x: 1, y: 1} - m_EdgeRadius: 0 + m_EdgeRadius: 0.05 --- !u!233 &6095859833293776203 HingeJoint2D: m_ObjectHideFlags: 0 @@ -321,6 +589,7 @@ GameObject: serializedVersion: 6 m_Component: - component: {fileID: 6095859833589646295} + - component: {fileID: 6063944130433637649} - component: {fileID: 6095859833589646293} - component: {fileID: 6095859833589646292} - component: {fileID: 6095859833589646298} @@ -341,10 +610,31 @@ Transform: m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 0.5, y: 1, z: 1} - m_Children: [] + m_Children: + - {fileID: 1077578955052460591} + - {fileID: 7020633736805051563} m_Father: {fileID: 6095859834264611321} m_RootOrder: 2 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &6063944130433637649 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6095859833589646294} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 99303295fe534f42863cd15bf22587f9, type: 3} + m_Name: + m_EditorClassIdentifier: + left: + keyCode: 97 + icon: {fileID: 5321565721314628342} + right: + keyCode: 100 + icon: {fileID: 7797841368364398355} + forceOrigin: {x: 0, y: -0.5, z: 0} --- !u!212 &6095859833589646293 SpriteRenderer: m_ObjectHideFlags: 0 @@ -442,7 +732,7 @@ BoxCollider2D: m_AutoTiling: 0 serializedVersion: 2 m_Size: {x: 1, y: 1} - m_EdgeRadius: 0 + m_EdgeRadius: 0.05 --- !u!1 &6095859834264611320 GameObject: m_ObjectHideFlags: 0 @@ -490,9 +780,91 @@ MonoBehaviour: m_Name: m_EditorClassIdentifier: segments: - - {fileID: 6095859833589646292} - - {fileID: 6095859832867562452} - - {fileID: 6095859833293776202} + - {fileID: 6063944130433637649} + - {fileID: 6967752935869289387} sensitivity: 2 + verticalSensitivity: 2 ballPrefab: {fileID: 2510945038599774573, guid: 2485406c33a7d4f5481ce936cc9b162e, type: 3} ballSpeed: 500 +--- !u!1 &7797841368364398355 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 7020633736805051563} + - component: {fileID: 2015508652436829747} + m_Layer: 0 + m_Name: D + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 0 +--- !u!4 &7020633736805051563 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7797841368364398355} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 1.5, y: 0, z: 0} + m_LocalScale: {x: 6, y: 3, z: 1} + m_Children: [] + m_Father: {fileID: 6095859833589646295} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!212 &2015508652436829747 +SpriteRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7797841368364398355} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 0 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 10754, guid: 0000000000000000f000000000000000, type: 0} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_Sprite: {fileID: 7664807735657788756, guid: 4c50c736e129f4891bb6f68b964d823d, type: 3} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_FlipX: 0 + m_FlipY: 0 + m_DrawMode: 0 + m_Size: {x: 0.14, y: 0.14} + m_AdaptiveModeThreshold: 0.5 + m_SpriteTileMode: 0 + m_WasSpriteAssigned: 1 + m_MaskInteraction: 0 + m_SpriteSortPoint: 0 diff --git a/Assets/Scenes/Main.unity b/Assets/Scenes/Main.unity index 59edbf5..9cef90d 100644 --- a/Assets/Scenes/Main.unity +++ b/Assets/Scenes/Main.unity @@ -123,6 +123,11 @@ NavMeshSettings: debug: m_Flags: 0 m_NavMeshData: {fileID: 0} +--- !u!4 &288486053 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 6095859832867562448, guid: c64ad9b908cb44602b3d13a74aef751f, type: 3} + m_PrefabInstance: {fileID: 984947992} + m_PrefabAsset: {fileID: 0} --- !u!1 &293352246 stripped GameObject: m_CorrespondingSourceObject: {fileID: 6554888089662917209, guid: be9aa59b997c243a2bf4287cb2129092, type: 3} @@ -165,6 +170,7 @@ GameObject: - component: {fileID: 519420032} - component: {fileID: 519420031} - component: {fileID: 519420029} + - component: {fileID: 519420030} m_Layer: 0 m_Name: Main Camera m_TagString: MainCamera @@ -180,6 +186,19 @@ AudioListener: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 519420028} m_Enabled: 1 +--- !u!114 &519420030 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 519420028} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: cb9598def536949fe9305920b43a1874, type: 3} + m_Name: + m_EditorClassIdentifier: + target: {fileID: 288486053} --- !u!20 &519420031 Camera: m_ObjectHideFlags: 0 @@ -230,14 +249,14 @@ Transform: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 519420028} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 5, z: -10} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 4.25, z: -10} m_LocalScale: {x: 1, y: 1, z: 1} m_Children: [] m_Father: {fileID: 0} m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1001 &1915923517 +--- !u!1001 &984947992 PrefabInstance: m_ObjectHideFlags: 0 serializedVersion: 2 @@ -258,7 +277,7 @@ PrefabInstance: objectReference: {fileID: 0} - target: {fileID: 6095859834264611321, guid: c64ad9b908cb44602b3d13a74aef751f, type: 3} propertyPath: m_LocalPosition.y - value: 3.75 + value: 3 objectReference: {fileID: 0} - target: {fileID: 6095859834264611321, guid: c64ad9b908cb44602b3d13a74aef751f, type: 3} propertyPath: m_LocalPosition.z @@ -292,8 +311,138 @@ PrefabInstance: propertyPath: m_LocalEulerAnglesHint.z value: 0 objectReference: {fileID: 0} + - target: {fileID: 6095859834264611326, guid: c64ad9b908cb44602b3d13a74aef751f, type: 3} + propertyPath: sensitivity + value: 2 + objectReference: {fileID: 0} + - target: {fileID: 6095859834264611326, guid: c64ad9b908cb44602b3d13a74aef751f, type: 3} + propertyPath: upSensitivity + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 6095859834264611326, guid: c64ad9b908cb44602b3d13a74aef751f, type: 3} + propertyPath: verticalSensitivity + value: 1.5 + objectReference: {fileID: 0} m_RemovedComponents: [] m_SourcePrefab: {fileID: 100100000, guid: c64ad9b908cb44602b3d13a74aef751f, type: 3} +--- !u!1001 &1354192741 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 0} + m_Modifications: + - target: {fileID: 2106494524751008833, guid: b2939f2eae52d074b81e81fccdde88f9, type: 3} + propertyPath: m_RootOrder + value: 4 + objectReference: {fileID: 0} + - target: {fileID: 2106494524751008833, guid: b2939f2eae52d074b81e81fccdde88f9, type: 3} + propertyPath: m_LocalScale.x + value: -5 + objectReference: {fileID: 0} + - target: {fileID: 2106494524751008833, guid: b2939f2eae52d074b81e81fccdde88f9, type: 3} + propertyPath: m_LocalPosition.x + value: -12.75 + objectReference: {fileID: 0} + - target: {fileID: 2106494524751008833, guid: b2939f2eae52d074b81e81fccdde88f9, type: 3} + propertyPath: m_LocalPosition.y + value: 5.5 + objectReference: {fileID: 0} + - target: {fileID: 2106494524751008833, guid: b2939f2eae52d074b81e81fccdde88f9, type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2106494524751008833, guid: b2939f2eae52d074b81e81fccdde88f9, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 2106494524751008833, guid: b2939f2eae52d074b81e81fccdde88f9, type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2106494524751008833, guid: b2939f2eae52d074b81e81fccdde88f9, type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2106494524751008833, guid: b2939f2eae52d074b81e81fccdde88f9, type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2106494524751008833, guid: b2939f2eae52d074b81e81fccdde88f9, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2106494524751008833, guid: b2939f2eae52d074b81e81fccdde88f9, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2106494524751008833, guid: b2939f2eae52d074b81e81fccdde88f9, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2106494524751008836, guid: b2939f2eae52d074b81e81fccdde88f9, type: 3} + propertyPath: m_Name + value: Hoop (1) + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: b2939f2eae52d074b81e81fccdde88f9, type: 3} +--- !u!1001 &1402386184 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 0} + m_Modifications: + - target: {fileID: 2106494524751008833, guid: b2939f2eae52d074b81e81fccdde88f9, type: 3} + propertyPath: m_RootOrder + value: 3 + objectReference: {fileID: 0} + - target: {fileID: 2106494524751008833, guid: b2939f2eae52d074b81e81fccdde88f9, type: 3} + propertyPath: m_LocalPosition.x + value: 12.75 + objectReference: {fileID: 0} + - target: {fileID: 2106494524751008833, guid: b2939f2eae52d074b81e81fccdde88f9, type: 3} + propertyPath: m_LocalPosition.y + value: 5.5 + objectReference: {fileID: 0} + - target: {fileID: 2106494524751008833, guid: b2939f2eae52d074b81e81fccdde88f9, type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2106494524751008833, guid: b2939f2eae52d074b81e81fccdde88f9, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 2106494524751008833, guid: b2939f2eae52d074b81e81fccdde88f9, type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2106494524751008833, guid: b2939f2eae52d074b81e81fccdde88f9, type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2106494524751008833, guid: b2939f2eae52d074b81e81fccdde88f9, type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2106494524751008833, guid: b2939f2eae52d074b81e81fccdde88f9, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2106494524751008833, guid: b2939f2eae52d074b81e81fccdde88f9, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2106494524751008833, guid: b2939f2eae52d074b81e81fccdde88f9, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2106494524751008836, guid: b2939f2eae52d074b81e81fccdde88f9, type: 3} + propertyPath: m_Name + value: Hoop + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: b2939f2eae52d074b81e81fccdde88f9, type: 3} --- !u!1001 &6554888089409436015 PrefabInstance: m_ObjectHideFlags: 0 diff --git a/Assets/Scripts/AIController.cs b/Assets/Scripts/AIController.cs deleted file mode 100644 index 9cb20fb..0000000 --- a/Assets/Scripts/AIController.cs +++ /dev/null @@ -1,16 +0,0 @@ -using UnityEngine; - -public class AIController : MonoBehaviour -{ - private void Update() - { - if (Input.GetKey(KeyCode.H)) - { - transform.position += Vector3.right * 0.01f; - } - else if (Input.GetKey(KeyCode.F)) - { - transform.position += Vector3.left * 0.01f; - } - } -} \ No newline at end of file diff --git a/Assets/Scripts/AIController.cs.meta b/Assets/Scripts/AIController.cs.meta deleted file mode 100644 index a64fd78..0000000 --- a/Assets/Scripts/AIController.cs.meta +++ /dev/null @@ -1,3 +0,0 @@ -fileFormatVersion: 2 -guid: bc5bf022ed0c4bfcaae099b96eecf645 -timeCreated: 1623461478 \ No newline at end of file diff --git a/Assets/Scripts/Controllers.meta b/Assets/Scripts/Controllers.meta new file mode 100644 index 0000000..8f91366 --- /dev/null +++ b/Assets/Scripts/Controllers.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: 62c7deb7956f4aa1a8b47e1601df4173 +timeCreated: 1623470772 \ No newline at end of file diff --git a/Assets/Scripts/Controllers/AIController.cs b/Assets/Scripts/Controllers/AIController.cs new file mode 100644 index 0000000..9f115c2 --- /dev/null +++ b/Assets/Scripts/Controllers/AIController.cs @@ -0,0 +1,19 @@ +using UnityEngine; + +namespace Controllers +{ + public class AIController : MonoBehaviour + { + private void Update() + { + if (Input.GetKey(KeyCode.H)) + { + transform.position += Vector3.right * 0.01f; + } + else if (Input.GetKey(KeyCode.F)) + { + transform.position += Vector3.left * 0.01f; + } + } + } +} diff --git a/Assets/Scripts/Controllers/AIController.cs.meta b/Assets/Scripts/Controllers/AIController.cs.meta new file mode 100644 index 0000000..a64fd78 --- /dev/null +++ b/Assets/Scripts/Controllers/AIController.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: bc5bf022ed0c4bfcaae099b96eecf645 +timeCreated: 1623461478 \ No newline at end of file diff --git a/Assets/Scripts/Controllers/CameraController.cs b/Assets/Scripts/Controllers/CameraController.cs new file mode 100644 index 0000000..a72b2f4 --- /dev/null +++ b/Assets/Scripts/Controllers/CameraController.cs @@ -0,0 +1,14 @@ +using UnityEngine; + +namespace Controllers +{ + public class CameraController : MonoBehaviour + { + [SerializeField] private Transform target; + + private void Update() + { + transform.position = new Vector3(target.transform.position.x, target.transform.position.y, -10f); + } + } +} diff --git a/Assets/Scripts/Controllers/CameraController.cs.meta b/Assets/Scripts/Controllers/CameraController.cs.meta new file mode 100644 index 0000000..993e111 --- /dev/null +++ b/Assets/Scripts/Controllers/CameraController.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: cb9598def536949fe9305920b43a1874 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/Controllers/Player.meta b/Assets/Scripts/Controllers/Player.meta new file mode 100644 index 0000000..969fc57 --- /dev/null +++ b/Assets/Scripts/Controllers/Player.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: 5048baca0abc4e02a20e35db55394c74 +timeCreated: 1623470798 \ No newline at end of file diff --git a/Assets/Scripts/Controllers/Player/PlayerController.cs b/Assets/Scripts/Controllers/Player/PlayerController.cs new file mode 100644 index 0000000..c5cfc3d --- /dev/null +++ b/Assets/Scripts/Controllers/Player/PlayerController.cs @@ -0,0 +1,75 @@ +using System.Linq; +using Controllers.Player; +using UnityEngine; + +namespace Controllers.Player +{ + public class PlayerController : MonoBehaviour + { + [SerializeField] private PlayerSegment[] segments; + [SerializeField] private float sensitivity; + [SerializeField] private float verticalSensitivity; + + [SerializeField] private Rigidbody2D ballPrefab; + [SerializeField] private float ballSpeed; + + private void Update() + { + for (var i = 0; i < segments.Length; i++) + { + var segment = segments[i]; + var isRoot = i == 0; + + // Update icons + foreach (var control in new[] {segment.left, segment.right}) + { + if (Input.GetKeyDown(control.keyCode)) + control.icon.SetActive(true); + else if (Input.GetKeyUp(control.keyCode)) + control.icon.SetActive(false); + } + + // Add forces + if (Input.GetKey(segment.left.keyCode)) + segment.Rigidbody.AddForceAtPosition(Vector2.left * (sensitivity * (isRoot ? 2f : 1f)) + Vector2.up * (verticalSensitivity * (isRoot ? -1f : 1f)), segment.transform.position + (segment.Sprite.bounds.size.y * segment.forceOrigin)); + if (Input.GetKey(segment.right.keyCode)) + segment.Rigidbody.AddForceAtPosition(Vector2.right * (sensitivity * (isRoot ? 2f : 1f)) + Vector2.up * (verticalSensitivity * (isRoot ? -1f : 1f)), segment.transform.position + (segment.Sprite.bounds.size.y * segment.forceOrigin)); + } + + // if (Input.GetKey(KeyCode.D)) + // { + // segments[0].AddForceAtPosition(Vector2.right * sensitivity, (Vector2)segments[0].transform.position - Vector2.up * 0.5f); + // } + // else if (Input.GetKey(KeyCode.A)) + // { + // segments[0].AddForceAtPosition(Vector2.left * sensitivity, (Vector2)segments[0].transform.position - Vector2.up * 0.5f); + // } + // + // if (Input.GetKey(KeyCode.L)) + // { + // segments[1].AddForceAtPosition(Vector2.right * sensitivity, (Vector2)segments[1].transform.position + Vector2.up * 0.5f); + // } + // else if (Input.GetKey(KeyCode.J)) + // { + // segments[1].AddForceAtPosition(Vector2.left * sensitivity, (Vector2)segments[1].transform.position + Vector2.up * 0.5f); + // } + // + // if (Input.GetKey(KeyCode.RightArrow)) + // { + // segments[2].AddForceAtPosition(Vector2.right * sensitivity, (Vector2)segments[2].transform.position + Vector2.up * 0.5f); + // } + // else if (Input.GetKey(KeyCode.LeftArrow)) + // { + // segments[2].AddForceAtPosition(Vector2.left * sensitivity, (Vector2)segments[2].transform.position + Vector2.up * 0.5f); + // } + // + if (Input.GetKeyDown(KeyCode.Space)) + { + var ball = Instantiate(ballPrefab); + var lastSegment = segments.Last(); + ball.transform.position = lastSegment.transform.position; + ball.AddForce((lastSegment.transform.right + lastSegment.transform.up) * ballSpeed); + } + } + } +} diff --git a/Assets/Scripts/Controllers/Player/PlayerController.cs.meta b/Assets/Scripts/Controllers/Player/PlayerController.cs.meta new file mode 100644 index 0000000..8a5b37d --- /dev/null +++ b/Assets/Scripts/Controllers/Player/PlayerController.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 261cc3206075846ebbd03b8896e7c733 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/Controllers/Player/PlayerSegment.cs b/Assets/Scripts/Controllers/Player/PlayerSegment.cs new file mode 100644 index 0000000..6306201 --- /dev/null +++ b/Assets/Scripts/Controllers/Player/PlayerSegment.cs @@ -0,0 +1,28 @@ +using System; +using UnityEngine; + +namespace Controllers.Player +{ + [RequireComponent(typeof(Rigidbody2D))] + [RequireComponent(typeof(SpriteRenderer))] + public class PlayerSegment : MonoBehaviour + { + [SerializeField] public Control left; + [SerializeField] public Control right; + + [SerializeField] public Vector3 forceOrigin; + + public Rigidbody2D Rigidbody => _rigidbody != null ? _rigidbody : _rigidbody = GetComponent(); + private Rigidbody2D _rigidbody; + + public SpriteRenderer Sprite => _sprite != null ? _sprite : _sprite = GetComponent(); + private SpriteRenderer _sprite; + } + + [Serializable] + public struct Control + { + public KeyCode keyCode; + public GameObject icon; + } +} diff --git a/Assets/Scripts/Controllers/Player/PlayerSegment.cs.meta b/Assets/Scripts/Controllers/Player/PlayerSegment.cs.meta new file mode 100644 index 0000000..915819f --- /dev/null +++ b/Assets/Scripts/Controllers/Player/PlayerSegment.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: 99303295fe534f42863cd15bf22587f9 +timeCreated: 1623470806 \ No newline at end of file diff --git a/Assets/Scripts/PlayerController.cs b/Assets/Scripts/PlayerController.cs deleted file mode 100644 index 22ce225..0000000 --- a/Assets/Scripts/PlayerController.cs +++ /dev/null @@ -1,51 +0,0 @@ -using System; -using System.Collections; -using System.Collections.Generic; -using System.Linq; -using UnityEngine; - -public class PlayerController : MonoBehaviour -{ - [SerializeField] private List segments; - [SerializeField] private float sensitivity; - - [SerializeField] private Rigidbody2D ballPrefab; - [SerializeField] private float ballSpeed; - - private void Update() - { - if (Input.GetKey(KeyCode.D)) - { - segments[0].AddForceAtPosition(Vector2.right * sensitivity, (Vector2)segments[0].transform.position - Vector2.up * 0.5f); - } - else if (Input.GetKey(KeyCode.A)) - { - segments[0].AddForceAtPosition(Vector2.left * sensitivity, (Vector2)segments[0].transform.position - Vector2.up * 0.5f); - } - - if (Input.GetKey(KeyCode.L)) - { - segments[1].AddForceAtPosition(Vector2.right * sensitivity, (Vector2)segments[1].transform.position + Vector2.up * 0.5f); - } - else if (Input.GetKey(KeyCode.J)) - { - segments[1].AddForceAtPosition(Vector2.left * sensitivity, (Vector2)segments[1].transform.position + Vector2.up * 0.5f); - } - - if (Input.GetKey(KeyCode.RightArrow)) - { - segments[2].AddForceAtPosition(Vector2.right * sensitivity, (Vector2)segments[2].transform.position + Vector2.up * 0.5f); - } - else if (Input.GetKey(KeyCode.LeftArrow)) - { - segments[2].AddForceAtPosition(Vector2.left * sensitivity, (Vector2)segments[2].transform.position + Vector2.up * 0.5f); - } - - if (Input.GetKeyDown(KeyCode.Space)) - { - var ball = Instantiate(ballPrefab); - ball.transform.position = segments.Last().position; - ball.AddForce((Vector2.right + Vector2.up) * ballSpeed); - } - } -} diff --git a/Assets/Scripts/PlayerController.cs.meta b/Assets/Scripts/PlayerController.cs.meta deleted file mode 100644 index 8a5b37d..0000000 --- a/Assets/Scripts/PlayerController.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 261cc3206075846ebbd03b8896e7c733 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Sprites/Buttons.png b/Assets/Sprites/Buttons.png new file mode 100644 index 0000000..33bd61e Binary files /dev/null and b/Assets/Sprites/Buttons.png differ diff --git a/Assets/Sprites/Buttons.png.meta b/Assets/Sprites/Buttons.png.meta new file mode 100644 index 0000000..fafffc4 --- /dev/null +++ b/Assets/Sprites/Buttons.png.meta @@ -0,0 +1,216 @@ +fileFormatVersion: 2 +guid: 4c50c736e129f4891bb6f68b964d823d +TextureImporter: + internalIDToNameTable: + - first: + 213: 8894201953851282084 + second: A + - first: + 213: 7664807735657788756 + second: D + - first: + 213: -5402412272178277761 + second: Arrow.Left + - first: + 213: 2013261503205373015 + second: Arrow.Right + externalObjects: {} + serializedVersion: 11 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + 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 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + vTOnly: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 0 + aniso: -1 + mipBias: -100 + wrapU: 1 + wrapV: 1 + wrapW: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 2 + 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: 1 + spriteTessellationDetail: -1 + textureType: 8 + textureShape: 1 + singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + ignorePngGamma: 0 + applyGammaDecoding: 0 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 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 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Android + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: + - serializedVersion: 2 + name: A + rect: + serializedVersion: 2 + x: 0 + y: 14 + width: 14 + height: 14 + alignment: 0 + pivot: {x: 0.5, y: 0.5} + border: {x: 0, y: 0, z: 0, w: 0} + outline: [] + physicsShape: [] + tessellationDetail: 0 + bones: [] + spriteID: 4a214e3bd8d8e6b70800000000000000 + internalID: 8894201953851282084 + vertices: [] + indices: + edges: [] + weights: [] + - serializedVersion: 2 + name: D + rect: + serializedVersion: 2 + x: 14 + y: 14 + width: 14 + height: 14 + alignment: 0 + pivot: {x: 0.5, y: 0.5} + border: {x: 0, y: 0, z: 0, w: 0} + outline: [] + physicsShape: [] + tessellationDetail: 0 + bones: [] + spriteID: 4557c83960ede5a60800000000000000 + internalID: 7664807735657788756 + vertices: [] + indices: + edges: [] + weights: [] + - serializedVersion: 2 + name: Arrow.Left + rect: + serializedVersion: 2 + x: 0 + y: 0 + width: 14 + height: 14 + alignment: 0 + pivot: {x: 0.5, y: 0.5} + border: {x: 0, y: 0, z: 0, w: 0} + outline: [] + physicsShape: [] + tessellationDetail: 0 + bones: [] + spriteID: f725a9269a6c605b0800000000000000 + internalID: -5402412272178277761 + vertices: [] + indices: + edges: [] + weights: [] + - serializedVersion: 2 + name: Arrow.Right + rect: + serializedVersion: 2 + x: 14 + y: 0 + width: 14 + height: 14 + alignment: 0 + pivot: {x: 0.5, y: 0.5} + border: {x: 0, y: 0, z: 0, w: 0} + outline: [] + physicsShape: [] + tessellationDetail: 0 + bones: [] + spriteID: 7547682abaa80fb10800000000000000 + internalID: 2013261503205373015 + vertices: [] + indices: + edges: [] + weights: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: 5e97eb03825dee720800000000000000 + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: -- cgit v1.2.3-56-ge451