Awesome idea!
Here is some tips to make this better:
-never set transform position of physics objects, use rigidbody.move or rigidbody.velocity
-you can use cinemachine to make a character following camera in seconds
-you can make the grappling hook a physical object too, make the grappling hook tip an object, when it collides something create a fixed joint with wall, and a distance joint with player, and reduce the distance on distance joint over 1-2 seconds.