Question by
BooperDOoper2595 · Sep 07, 2015 at 11:46 PM ·
kill player
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
Comment
Answer by Positive7 · Sep 08, 2015 at 12:23 AM
change onCollisionEnter2D
to OnCollisionEnter2D
:D
A little Tip : In the feature check if Collision happens with a Debug.Log("Collision happend");
Your answer
Follow this Question
Related Questions
I need to kill bots when I shoot on them.I am not good on scripting, but I made my best. 1 Answer
Killing Player doesn't work 0 Answers
Enemy Kills Player Tutorial? 0 Answers
Kill Player Method Doesn't Work ? 0 Answers
2D enemy wave that the player can ride on but the front kills them in and endless runner. 1 Answer