diff --git a/Assets/Prefabs/Player/Test/TestGhost.prefab b/Assets/Prefabs/Player/Test/TestGhost.prefab index 2cad049..bdf1cab 100644 --- a/Assets/Prefabs/Player/Test/TestGhost.prefab +++ b/Assets/Prefabs/Player/Test/TestGhost.prefab @@ -398,7 +398,7 @@ GameObject: - component: {fileID: 6300331755610773185} - component: {fileID: 1005087433339588838} - component: {fileID: 2709621320460236112} - m_Layer: 6 + m_Layer: 7 m_Name: Foot m_TagString: Untagged m_Icon: {fileID: 0} @@ -536,7 +536,7 @@ GameObject: - component: {fileID: 6310145167924703520} - component: {fileID: 3755142527984776671} - component: {fileID: 808045438588007676} - m_Layer: 6 + m_Layer: 7 m_Name: Hang m_TagString: Untagged m_Icon: {fileID: 0} diff --git a/Assets/Prefabs/Props/Box.prefab b/Assets/Prefabs/Props/Box.prefab index 81812a0..4a491d1 100644 --- a/Assets/Prefabs/Props/Box.prefab +++ b/Assets/Prefabs/Props/Box.prefab @@ -615,8 +615,8 @@ Rigidbody2D: m_Simulated: 1 m_UseFullKinematicContacts: 0 m_UseAutoMass: 0 - m_Mass: 3 - m_LinearDamping: 0.3 + m_Mass: 4.5 + m_LinearDamping: 0.7 m_AngularDamping: 0.05 m_GravityScale: 1 m_Material: {fileID: 0} @@ -626,9 +626,9 @@ Rigidbody2D: m_ExcludeLayers: serializedVersion: 2 m_Bits: 0 - m_Interpolate: 0 + m_Interpolate: 1 m_SleepingMode: 1 - m_CollisionDetection: 0 + m_CollisionDetection: 1 m_Constraints: 0 --- !u!1 &5617236640540773648 GameObject: diff --git a/Assets/Prefabs/Props/SwingAnchor.prefab b/Assets/Prefabs/Props/SwingAnchor.prefab index f8c645e..419aba4 100644 --- a/Assets/Prefabs/Props/SwingAnchor.prefab +++ b/Assets/Prefabs/Props/SwingAnchor.prefab @@ -12,7 +12,7 @@ GameObject: - component: {fileID: 3429486657845383126} - component: {fileID: 3202992198680588160} - component: {fileID: 3200954965165529008} - m_Layer: 0 + m_Layer: 9 m_Name: SwingBar m_TagString: Untagged m_Icon: {fileID: 0} @@ -158,7 +158,7 @@ GameObject: m_Component: - component: {fileID: 98495782515993009} - component: {fileID: 7646120204544070395} - m_Layer: 0 + m_Layer: 9 m_Name: Visual m_TagString: Untagged m_Icon: {fileID: 0} @@ -249,7 +249,7 @@ GameObject: m_Component: - component: {fileID: 8390795884858170179} - component: {fileID: 1734320431658050092} - m_Layer: 0 + m_Layer: 9 m_Name: Visual m_TagString: Untagged m_Icon: {fileID: 0} @@ -376,7 +376,7 @@ GameObject: m_Component: - component: {fileID: 3153273311225917094} - component: {fileID: 1365331126839619804} - m_Layer: 0 + m_Layer: 9 m_Name: Visual m_TagString: Untagged m_Icon: {fileID: 0} @@ -467,7 +467,7 @@ GameObject: m_Component: - component: {fileID: 85040435949565380} - component: {fileID: 2369418877207112218} - m_Layer: 0 + m_Layer: 9 m_Name: Visual m_TagString: Untagged m_Icon: {fileID: 0} @@ -559,7 +559,7 @@ GameObject: - component: {fileID: 4582874155115673815} - component: {fileID: 4559253699302031635} - component: {fileID: 1278372560768194994} - m_Layer: 3 + m_Layer: 9 m_Name: Body m_TagString: Untagged m_Icon: {fileID: 0} @@ -697,7 +697,7 @@ GameObject: - component: {fileID: 8281752329829367064} - component: {fileID: 9129319342043502918} - component: {fileID: 34955886150687707} - m_Layer: 0 + m_Layer: 9 m_Name: SwingAnchor m_TagString: Untagged m_Icon: {fileID: 0} diff --git a/Assets/Scenes/DemoScene.unity b/Assets/Scenes/DemoScene.unity index b65d048..18b1862 100644 --- a/Assets/Scenes/DemoScene.unity +++ b/Assets/Scenes/DemoScene.unity @@ -211,7 +211,7 @@ GameObject: - component: {fileID: 285871625} - component: {fileID: 285871624} m_Layer: 5 - m_Name: Canvas + m_Name: UI m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 @@ -492,37 +492,13 @@ PrefabInstance: serializedVersion: 3 m_TransformParent: {fileID: 0} m_Modifications: - - target: {fileID: 598752357735553918, guid: 73364fc97b4eb7e45b919a613e9bc3e4, type: 3} - propertyPath: m_Layer - value: 9 - objectReference: {fileID: 0} - - target: {fileID: 1716361100971525324, guid: 73364fc97b4eb7e45b919a613e9bc3e4, type: 3} - propertyPath: m_Layer - value: 9 - objectReference: {fileID: 0} - - target: {fileID: 1811653407230114426, guid: 73364fc97b4eb7e45b919a613e9bc3e4, type: 3} - propertyPath: m_Layer - value: 9 - objectReference: {fileID: 0} - - target: {fileID: 6378511140818958110, guid: 73364fc97b4eb7e45b919a613e9bc3e4, type: 3} - propertyPath: m_Layer - value: 9 - objectReference: {fileID: 0} - - target: {fileID: 7987088731355692738, guid: 73364fc97b4eb7e45b919a613e9bc3e4, type: 3} - propertyPath: m_Layer - value: 9 - objectReference: {fileID: 0} - - target: {fileID: 7993912299270569616, guid: 73364fc97b4eb7e45b919a613e9bc3e4, type: 3} - propertyPath: m_Layer - value: 9 - objectReference: {fileID: 0} - target: {fileID: 8281752329829367064, guid: 73364fc97b4eb7e45b919a613e9bc3e4, type: 3} propertyPath: m_LocalPosition.x - value: 7.07 + value: 7.71 objectReference: {fileID: 0} - target: {fileID: 8281752329829367064, guid: 73364fc97b4eb7e45b919a613e9bc3e4, type: 3} propertyPath: m_LocalPosition.y - value: 7.37 + value: 2.95 objectReference: {fileID: 0} - target: {fileID: 8281752329829367064, guid: 73364fc97b4eb7e45b919a613e9bc3e4, type: 3} propertyPath: m_LocalPosition.z @@ -560,10 +536,6 @@ PrefabInstance: propertyPath: m_Name value: SwingAnchor objectReference: {fileID: 0} - - target: {fileID: 8899569310899633692, guid: 73364fc97b4eb7e45b919a613e9bc3e4, type: 3} - propertyPath: m_Layer - value: 9 - objectReference: {fileID: 0} m_RemovedComponents: [] m_RemovedGameObjects: [] m_AddedGameObjects: [] @@ -2269,7 +2241,7 @@ TilemapCollider2D: m_Bits: 4294967295 m_IsTrigger: 0 m_UsedByEffector: 0 - m_CompositeOperation: 0 + m_CompositeOperation: 1 m_CompositeOrder: 0 m_Offset: {x: 0, y: 0} m_MaximumTileChangeCount: 1000 @@ -2313,9 +2285,35 @@ CompositeCollider2D: m_GeometryType: 0 m_GenerationType: 0 m_EdgeRadius: 0 - m_ColliderPaths: [] + m_ColliderPaths: + - m_Collider: {fileID: 1809668544} + m_ColliderPaths: + - - X: 40000000 + Y: -33888888 + - X: -140000000 + Y: -33888888 + - X: -140000000 + Y: -80000000 + - X: 40000000 + Y: -80000000 + - - X: 190000000 + Y: -33888888 + - X: 130000000 + Y: -33888888 + - X: 130000000 + Y: -80000000 + - X: 190000000 + Y: -80000000 m_CompositePaths: - m_Paths: [] + m_Paths: + - - {x: 18.999971, y: -8} + - {x: 18.999971, y: -3.3888888} + - {x: 13, y: -3.388918} + - {x: 13.00003, y: -8} + - - {x: 3.999971, y: -8} + - {x: 3.999971, y: -3.3888888} + - {x: -14, y: -3.388918} + - {x: -13.999971, y: -8} m_VertexDistance: 0.0005 m_OffsetDistance: 0.00005 m_UseDelaunayMesh: 0 @@ -2402,11 +2400,11 @@ PrefabInstance: m_Modifications: - target: {fileID: 2906008810286834707, guid: 0ff36777e0b72734ba4daae379a71a08, type: 3} propertyPath: m_LocalPosition.x - value: 0 + value: 0.94 objectReference: {fileID: 0} - target: {fileID: 2906008810286834707, guid: 0ff36777e0b72734ba4daae379a71a08, type: 3} propertyPath: m_LocalPosition.y - value: -0.28 + value: -2.24 objectReference: {fileID: 0} - target: {fileID: 2906008810286834707, guid: 0ff36777e0b72734ba4daae379a71a08, type: 3} propertyPath: m_LocalPosition.z @@ -2444,14 +2442,6 @@ PrefabInstance: propertyPath: m_Name value: Box objectReference: {fileID: 0} - - target: {fileID: 5573664053496952096, guid: 0ff36777e0b72734ba4daae379a71a08, type: 3} - propertyPath: m_Mass - value: 4.5 - objectReference: {fileID: 0} - - target: {fileID: 5573664053496952096, guid: 0ff36777e0b72734ba4daae379a71a08, type: 3} - propertyPath: m_LinearDamping - value: 0.7 - objectReference: {fileID: 0} m_RemovedComponents: [] m_RemovedGameObjects: [] m_AddedGameObjects: [] diff --git a/Assets/Scripts/Player/PlayerMovement.cs b/Assets/Scripts/Player/PlayerMovement.cs index 7c4fead..6235b05 100644 --- a/Assets/Scripts/Player/PlayerMovement.cs +++ b/Assets/Scripts/Player/PlayerMovement.cs @@ -23,8 +23,8 @@ public class PlayerMovement : MonoBehaviour [SerializeField] private LayerMask hangingWallLayer; - private Collider2D hangingWallCollider; - private Rigidbody2D hangingWallRigidBody; + [SerializeField] private Collider2D hangingWallCollider; + [SerializeField] private Rigidbody2D hangingWallRigidBody; private Vector2 inputVector; private bool isHanging = false; @@ -109,10 +109,24 @@ public class PlayerMovement : MonoBehaviour private void HangingObject() { - isHanging = true; - _rigidbody2D.linearVelocity = Vector2.zero; - _rigidbody2D.bodyType = RigidbodyType2D.Kinematic; - SnapToWall(); + float direction = transform.rotation.eulerAngles.y == 180 ? -1f : 1f; + RaycastHit2D hit = Physics2D.Raycast(transform.position, Vector2.right * direction, 1f, hangingWallLayer); + + if (hit.collider != null) + { + isHanging = true; + _rigidbody2D.linearVelocity = Vector2.zero; + _rigidbody2D.bodyType = RigidbodyType2D.Kinematic; + + hangingWallCollider = hit.collider; + hangingWallRigidBody = hit.collider.attachedRigidbody; + Physics2D.IgnoreCollision(_collider2D, hangingWallCollider, true); + + transform.position = new Vector2(hit.point.x, transform.position.y); + + gameObject.transform.SetParent(hit.transform, true); + transform.localRotation = Quaternion.identity; + } } private bool IsGrounded() @@ -131,22 +145,4 @@ public class PlayerMovement : MonoBehaviour transform.rotation = Quaternion.Euler(0, 180, 0); } } - - private void SnapToWall() - { - float direction = transform.rotation.eulerAngles.y == 180 ? -1f : 1f; - RaycastHit2D hit = Physics2D.Raycast(transform.position, Vector2.right * direction, 1f, hangingWallLayer); - - if (hit.collider != null) - { - hangingWallCollider = hit.collider; - hangingWallRigidBody = hit.rigidbody; - Physics2D.IgnoreCollision(_collider2D, hangingWallCollider, true); - - transform.position = new Vector2(hit.point.x, transform.position.y); - - gameObject.transform.SetParent(hit.transform, true); - transform.localRotation = Quaternion.identity; - } - } } \ No newline at end of file diff --git a/ProjectSettings/Physics2DSettings.asset b/ProjectSettings/Physics2DSettings.asset index 7bdb315..213bde4 100644 --- a/ProjectSettings/Physics2DSettings.asset +++ b/ProjectSettings/Physics2DSettings.asset @@ -53,5 +53,5 @@ Physics2DSettings: m_ReuseCollisionCallbacks: 1 m_AutoSyncTransforms: 0 m_GizmoOptions: 10 - m_LayerCollisionMatrix: fffefffffffefffffffefffffffffffffffefffffffeffff7ffdffff3ffcffff48feffff3fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + m_LayerCollisionMatrix: fffefffffffefffffffefffffffffffffffefffffffeffff7ffdffff3ffdffffc8feffff3fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff m_PhysicsLowLevelSettings: {fileID: 0}