How To Stop Player Completely?

EDIT: If you look at the script posted on here, it’s been changed. I got rid of transform.Translate (speed * Time.deltaTime, 0f, 0f); and replaced it with speed = 0; Now the Player finally stops in his tracks, but now I need to know how to turn on is kinematic from the script. So if anyone knows how to do that, do tell. That’s probably all I need, so you don’t need to read the rest of this.

Hello everyone. I’ve been testing out something on Unity, and this one thing is stopping me from continuing. You see when I grab a certain gameobject, it disables my Player Movement and Gravity. What I’m trying to, is stop the Player completely when in air. So far when I jump and collide with the gameobject, the Player continues to go up thanks to there being no gravity and well you know how things work. So what can I do to stop the Player completely when he jumps and collides with a certain gameobject? I’ve tried Time.timeScale = 0; so many times now, so it does not work for me.

Here’s part of my script so far WARNING messy code because it’s a test:

bool isPaused = false;
public float speed = 5f;
public float jumpForce = 700f;

void OnTriggerEnter2D(Collider2D coll)
	{
				
				if (coll.gameObject.tag == "Item") {
                                speed = 0;
                                this.rigidbody2D.gravityScale = 0.0f;
			            StartCoroutine (WaitGravity ());
			            if (isPaused)
				        rigidbody2D.AddForce (new Vector2 (0, jumpForce));
			            StartCoroutine (WaitJump ());
			          
				}
}

	IEnumerator WaitGravity()
	{
		yield return new WaitForSeconds (4.0f);
		this.rigidbody2D.gravityScale = 2.0f;
		}
	IEnumerator WaitJump()
	{
		yield return new WaitForSeconds (4.0f);
		rigidbody2D.AddForce (new Vector2 (0, jumpForce));
		}

Here’s the rest: http://pastebin.com/hXLR94WJ and http://pastebin.com/H7Fi9eb1
If you can help, please do so.

This may be a silly question, but have you tried reducing the player’s velocity to 0 just before disabling gravity?