How do i kill my player and restart him

I’m trying to make an endless runner and I get everything working except the kill box here is some of my code its c#

this is my game manager :

using UnityEngine;
using System.Collections;

public class GameManager : MonoBehaviour {

	public Transform platformGenerator;
	private Vector3 platformStartPoint;

	public PlayerController thePlayer;
	private Vector3 playerStartPoint;

	// Use this for initialization
	void Start () {
		platformStartPoint = platformGenerator.position;
		playerStartPoint = thePlayer.transform.position;

	
	}
	
	// Update is called once per frame
	void Update () {
	
	}

	public void RestartGames()
	{
		StartCoroutine ("RestartGameCo");
	}

	public IEnumerator RestartGamesCo()
	{
		thePlayer.gameObject.SetActive (false);
		yield return new WaitForSeconds (0.5f);
		thePlayer.transform.position = playerStartPoint;
		platformGenerator.position = platformStartPoint;
		thePlayer.gameObject.SetActive (true);
	}
}

and here is my character controller

using UnityEngine;
using System.Collections;

public class PlayerController : MonoBehaviour {

	public float moveSpeed;
	public float speedmultiplier;

	public float speedincreaseMilestone;
	private float speedMilestoneCount;


	public float jumpForce;

	public float jumpTime;
	private float jumpTimeCounter;

	private Rigidbody2D myRigidbody;


	public bool grounded;
	public LayerMask whatIsGround;
	public Transform groundCheck;
	public float groundCheckRadius;

	//private Collider2D myCollider;

	private Animator myAnimator;

	public GameManager theGameManager;

	// Use this for initialization
	void Start () {
		myRigidbody = GetComponent<Rigidbody2D>();

		//myCollider = GetComponent<Collider2D>();

		myAnimator = GetComponent<Animator>();

		jumpTimeCounter = jumpTime;

		speedMilestoneCount = speedincreaseMilestone;
	}
	
	// Update is called once per frame
	void Update () {

		//grounded = Physics2D.IsTouchingLayers(myCollider, whatIsGround);

		grounded = Physics2D.OverlapCircle(groundCheck.position, groundCheckRadius, whatIsGround);

		if(transform.position.x > speedMilestoneCount) 
		{
			speedMilestoneCount += speedincreaseMilestone;

			speedincreaseMilestone = speedincreaseMilestone * speedmultiplier;
			moveSpeed = moveSpeed * speedmultiplier;
		}

		myRigidbody.velocity = new Vector2 (moveSpeed, myRigidbody.velocity.y);

		if(Input.GetKeyDown (KeyCode.Space) || Input.GetMouseButtonDown (0)) {
			if (grounded) 
			{
				myRigidbody.velocity = new Vector2 (myRigidbody.velocity.x, jumpForce);
			}
		}

		if(Input.GetKey (KeyCode.Space) || Input.GetMouseButton (0)) 
		{
			if(jumpTimeCounter > 0)
			{
				myRigidbody.velocity = new Vector2 (myRigidbody.velocity.x, jumpForce);
				jumpTimeCounter -= Time.deltaTime;
			}
		}

		if(Input.GetKeyUp (KeyCode.Space) || Input.GetMouseButtonUp (0)) 
		{
			jumpTimeCounter = 0;
		}

		if(grounded) 
		{
			jumpTimeCounter = jumpTime;
		}

		myAnimator.SetFloat ("Speed", myRigidbody.velocity.x);
	}

	void onCollisionEnter2D (Collision2D other)
	{
		if(other.gameObject.tag == "killbox") 
		{
			theGameManager.RestartGames();
		}
	}
}

plz help

change onCollisionEnter2D to OnCollisionEnter2D :smiley:

A little Tip : In the feature check if Collision happens with a Debug.Log("Collision happend");