메달리기 및 끼임 현상 수정

This commit is contained in:
백민승_crow 2026-02-03 14:59:13 +09:00
parent 4f25e36e1a
commit d01ec9c1c2
6 changed files with 68 additions and 82 deletions

View File

@ -398,7 +398,7 @@ GameObject:
- component: {fileID: 6300331755610773185} - component: {fileID: 6300331755610773185}
- component: {fileID: 1005087433339588838} - component: {fileID: 1005087433339588838}
- component: {fileID: 2709621320460236112} - component: {fileID: 2709621320460236112}
m_Layer: 6 m_Layer: 7
m_Name: Foot m_Name: Foot
m_TagString: Untagged m_TagString: Untagged
m_Icon: {fileID: 0} m_Icon: {fileID: 0}
@ -536,7 +536,7 @@ GameObject:
- component: {fileID: 6310145167924703520} - component: {fileID: 6310145167924703520}
- component: {fileID: 3755142527984776671} - component: {fileID: 3755142527984776671}
- component: {fileID: 808045438588007676} - component: {fileID: 808045438588007676}
m_Layer: 6 m_Layer: 7
m_Name: Hang m_Name: Hang
m_TagString: Untagged m_TagString: Untagged
m_Icon: {fileID: 0} m_Icon: {fileID: 0}

View File

@ -615,8 +615,8 @@ Rigidbody2D:
m_Simulated: 1 m_Simulated: 1
m_UseFullKinematicContacts: 0 m_UseFullKinematicContacts: 0
m_UseAutoMass: 0 m_UseAutoMass: 0
m_Mass: 3 m_Mass: 4.5
m_LinearDamping: 0.3 m_LinearDamping: 0.7
m_AngularDamping: 0.05 m_AngularDamping: 0.05
m_GravityScale: 1 m_GravityScale: 1
m_Material: {fileID: 0} m_Material: {fileID: 0}
@ -626,9 +626,9 @@ Rigidbody2D:
m_ExcludeLayers: m_ExcludeLayers:
serializedVersion: 2 serializedVersion: 2
m_Bits: 0 m_Bits: 0
m_Interpolate: 0 m_Interpolate: 1
m_SleepingMode: 1 m_SleepingMode: 1
m_CollisionDetection: 0 m_CollisionDetection: 1
m_Constraints: 0 m_Constraints: 0
--- !u!1 &5617236640540773648 --- !u!1 &5617236640540773648
GameObject: GameObject:

View File

@ -12,7 +12,7 @@ GameObject:
- component: {fileID: 3429486657845383126} - component: {fileID: 3429486657845383126}
- component: {fileID: 3202992198680588160} - component: {fileID: 3202992198680588160}
- component: {fileID: 3200954965165529008} - component: {fileID: 3200954965165529008}
m_Layer: 0 m_Layer: 9
m_Name: SwingBar m_Name: SwingBar
m_TagString: Untagged m_TagString: Untagged
m_Icon: {fileID: 0} m_Icon: {fileID: 0}
@ -158,7 +158,7 @@ GameObject:
m_Component: m_Component:
- component: {fileID: 98495782515993009} - component: {fileID: 98495782515993009}
- component: {fileID: 7646120204544070395} - component: {fileID: 7646120204544070395}
m_Layer: 0 m_Layer: 9
m_Name: Visual m_Name: Visual
m_TagString: Untagged m_TagString: Untagged
m_Icon: {fileID: 0} m_Icon: {fileID: 0}
@ -249,7 +249,7 @@ GameObject:
m_Component: m_Component:
- component: {fileID: 8390795884858170179} - component: {fileID: 8390795884858170179}
- component: {fileID: 1734320431658050092} - component: {fileID: 1734320431658050092}
m_Layer: 0 m_Layer: 9
m_Name: Visual m_Name: Visual
m_TagString: Untagged m_TagString: Untagged
m_Icon: {fileID: 0} m_Icon: {fileID: 0}
@ -376,7 +376,7 @@ GameObject:
m_Component: m_Component:
- component: {fileID: 3153273311225917094} - component: {fileID: 3153273311225917094}
- component: {fileID: 1365331126839619804} - component: {fileID: 1365331126839619804}
m_Layer: 0 m_Layer: 9
m_Name: Visual m_Name: Visual
m_TagString: Untagged m_TagString: Untagged
m_Icon: {fileID: 0} m_Icon: {fileID: 0}
@ -467,7 +467,7 @@ GameObject:
m_Component: m_Component:
- component: {fileID: 85040435949565380} - component: {fileID: 85040435949565380}
- component: {fileID: 2369418877207112218} - component: {fileID: 2369418877207112218}
m_Layer: 0 m_Layer: 9
m_Name: Visual m_Name: Visual
m_TagString: Untagged m_TagString: Untagged
m_Icon: {fileID: 0} m_Icon: {fileID: 0}
@ -559,7 +559,7 @@ GameObject:
- component: {fileID: 4582874155115673815} - component: {fileID: 4582874155115673815}
- component: {fileID: 4559253699302031635} - component: {fileID: 4559253699302031635}
- component: {fileID: 1278372560768194994} - component: {fileID: 1278372560768194994}
m_Layer: 3 m_Layer: 9
m_Name: Body m_Name: Body
m_TagString: Untagged m_TagString: Untagged
m_Icon: {fileID: 0} m_Icon: {fileID: 0}
@ -697,7 +697,7 @@ GameObject:
- component: {fileID: 8281752329829367064} - component: {fileID: 8281752329829367064}
- component: {fileID: 9129319342043502918} - component: {fileID: 9129319342043502918}
- component: {fileID: 34955886150687707} - component: {fileID: 34955886150687707}
m_Layer: 0 m_Layer: 9
m_Name: SwingAnchor m_Name: SwingAnchor
m_TagString: Untagged m_TagString: Untagged
m_Icon: {fileID: 0} m_Icon: {fileID: 0}

View File

@ -211,7 +211,7 @@ GameObject:
- component: {fileID: 285871625} - component: {fileID: 285871625}
- component: {fileID: 285871624} - component: {fileID: 285871624}
m_Layer: 5 m_Layer: 5
m_Name: Canvas m_Name: UI
m_TagString: Untagged m_TagString: Untagged
m_Icon: {fileID: 0} m_Icon: {fileID: 0}
m_NavMeshLayer: 0 m_NavMeshLayer: 0
@ -492,37 +492,13 @@ PrefabInstance:
serializedVersion: 3 serializedVersion: 3
m_TransformParent: {fileID: 0} m_TransformParent: {fileID: 0}
m_Modifications: 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} - target: {fileID: 8281752329829367064, guid: 73364fc97b4eb7e45b919a613e9bc3e4, type: 3}
propertyPath: m_LocalPosition.x propertyPath: m_LocalPosition.x
value: 7.07 value: 7.71
objectReference: {fileID: 0} objectReference: {fileID: 0}
- target: {fileID: 8281752329829367064, guid: 73364fc97b4eb7e45b919a613e9bc3e4, type: 3} - target: {fileID: 8281752329829367064, guid: 73364fc97b4eb7e45b919a613e9bc3e4, type: 3}
propertyPath: m_LocalPosition.y propertyPath: m_LocalPosition.y
value: 7.37 value: 2.95
objectReference: {fileID: 0} objectReference: {fileID: 0}
- target: {fileID: 8281752329829367064, guid: 73364fc97b4eb7e45b919a613e9bc3e4, type: 3} - target: {fileID: 8281752329829367064, guid: 73364fc97b4eb7e45b919a613e9bc3e4, type: 3}
propertyPath: m_LocalPosition.z propertyPath: m_LocalPosition.z
@ -560,10 +536,6 @@ PrefabInstance:
propertyPath: m_Name propertyPath: m_Name
value: SwingAnchor value: SwingAnchor
objectReference: {fileID: 0} objectReference: {fileID: 0}
- target: {fileID: 8899569310899633692, guid: 73364fc97b4eb7e45b919a613e9bc3e4, type: 3}
propertyPath: m_Layer
value: 9
objectReference: {fileID: 0}
m_RemovedComponents: [] m_RemovedComponents: []
m_RemovedGameObjects: [] m_RemovedGameObjects: []
m_AddedGameObjects: [] m_AddedGameObjects: []
@ -2269,7 +2241,7 @@ TilemapCollider2D:
m_Bits: 4294967295 m_Bits: 4294967295
m_IsTrigger: 0 m_IsTrigger: 0
m_UsedByEffector: 0 m_UsedByEffector: 0
m_CompositeOperation: 0 m_CompositeOperation: 1
m_CompositeOrder: 0 m_CompositeOrder: 0
m_Offset: {x: 0, y: 0} m_Offset: {x: 0, y: 0}
m_MaximumTileChangeCount: 1000 m_MaximumTileChangeCount: 1000
@ -2313,9 +2285,35 @@ CompositeCollider2D:
m_GeometryType: 0 m_GeometryType: 0
m_GenerationType: 0 m_GenerationType: 0
m_EdgeRadius: 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_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_VertexDistance: 0.0005
m_OffsetDistance: 0.00005 m_OffsetDistance: 0.00005
m_UseDelaunayMesh: 0 m_UseDelaunayMesh: 0
@ -2402,11 +2400,11 @@ PrefabInstance:
m_Modifications: m_Modifications:
- target: {fileID: 2906008810286834707, guid: 0ff36777e0b72734ba4daae379a71a08, type: 3} - target: {fileID: 2906008810286834707, guid: 0ff36777e0b72734ba4daae379a71a08, type: 3}
propertyPath: m_LocalPosition.x propertyPath: m_LocalPosition.x
value: 0 value: 0.94
objectReference: {fileID: 0} objectReference: {fileID: 0}
- target: {fileID: 2906008810286834707, guid: 0ff36777e0b72734ba4daae379a71a08, type: 3} - target: {fileID: 2906008810286834707, guid: 0ff36777e0b72734ba4daae379a71a08, type: 3}
propertyPath: m_LocalPosition.y propertyPath: m_LocalPosition.y
value: -0.28 value: -2.24
objectReference: {fileID: 0} objectReference: {fileID: 0}
- target: {fileID: 2906008810286834707, guid: 0ff36777e0b72734ba4daae379a71a08, type: 3} - target: {fileID: 2906008810286834707, guid: 0ff36777e0b72734ba4daae379a71a08, type: 3}
propertyPath: m_LocalPosition.z propertyPath: m_LocalPosition.z
@ -2444,14 +2442,6 @@ PrefabInstance:
propertyPath: m_Name propertyPath: m_Name
value: Box value: Box
objectReference: {fileID: 0} 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_RemovedComponents: []
m_RemovedGameObjects: [] m_RemovedGameObjects: []
m_AddedGameObjects: [] m_AddedGameObjects: []

View File

@ -23,8 +23,8 @@ public class PlayerMovement : MonoBehaviour
[SerializeField] private LayerMask hangingWallLayer; [SerializeField] private LayerMask hangingWallLayer;
private Collider2D hangingWallCollider; [SerializeField] private Collider2D hangingWallCollider;
private Rigidbody2D hangingWallRigidBody; [SerializeField] private Rigidbody2D hangingWallRigidBody;
private Vector2 inputVector; private Vector2 inputVector;
private bool isHanging = false; private bool isHanging = false;
@ -109,10 +109,24 @@ public class PlayerMovement : MonoBehaviour
private void HangingObject() private void HangingObject()
{ {
isHanging = true; float direction = transform.rotation.eulerAngles.y == 180 ? -1f : 1f;
_rigidbody2D.linearVelocity = Vector2.zero; RaycastHit2D hit = Physics2D.Raycast(transform.position, Vector2.right * direction, 1f, hangingWallLayer);
_rigidbody2D.bodyType = RigidbodyType2D.Kinematic;
SnapToWall(); 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() private bool IsGrounded()
@ -131,22 +145,4 @@ public class PlayerMovement : MonoBehaviour
transform.rotation = Quaternion.Euler(0, 180, 0); 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;
}
}
} }

View File

@ -53,5 +53,5 @@ Physics2DSettings:
m_ReuseCollisionCallbacks: 1 m_ReuseCollisionCallbacks: 1
m_AutoSyncTransforms: 0 m_AutoSyncTransforms: 0
m_GizmoOptions: 10 m_GizmoOptions: 10
m_LayerCollisionMatrix: fffefffffffefffffffefffffffffffffffefffffffeffff7ffdffff3ffcffff48feffff3fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff m_LayerCollisionMatrix: fffefffffffefffffffefffffffffffffffefffffffeffff7ffdffff3ffdffffc8feffff3fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
m_PhysicsLowLevelSettings: {fileID: 0} m_PhysicsLowLevelSettings: {fileID: 0}