Add force with acceleration
alright so i need a physics script or a video on how to do this but how do i make it so when the player jumps on lets say a platform at a straight 45 degree angle ( like a slash / ) he sticks to the platform by holding either A or D depending on witch side of the platform the player is on. and gives the player acceleration. what im trying to get at is like CS:GO / CS:S surfing physics in the personal edition of unity.
Answer by LazyElephant · Jan 10, 2016 at 08:59 AM
One way you could implement this is by using trigger colliders as physics effectors. The idea is demonstrated in this basic unity physics tutorial: https://unity3d.com/learn/tutorials/modules/beginner/physics/colliders-as-triggers?playlist=17120
The idea is, when you're inside the trigger, it adds force to your player. To simulate CS surfing, you would have to add forces in the player's forward direction.
Alternatively, you could do this without using triggers. You could give these specific platforms a unique tag and test for it in your OnCollision()
function. Pseudocode for that would look something like this:
OnCollision
If collidingObject.tag == SurfingSurface
add forward force to player
Answer by CaJerry87 · Nov 03, 2016 at 03:49 AM
I'm actually cruising questions myself so i don't feel like spending too much time here but have you considered having your key press (or whatever) on an if statement or something so it can only activate(by using a raycast or linecast to check) if you are on a specific surface (which you will have tagged so probably collidingobject.tag like LazyElephant said) .
Once activated you create a FixedJoint to lock that player in place and just Destroy (getcomponent)(not actual code). This might help transition the physics over the other rigid body.
Also you can just store your velocity with a vector3 I believe. Then give it to the rigid body, this might be easier but will require some fine tuning I'm sure. Hope this helped you conceptualize a solution.