- Home /
Respawn Die Script (C#)
Hi guys, I have made a Player Die script for my 2d game so when the player falls of the platform he dies but i am trying to make it so when the player dies he respawns a couple of seconds later in coordinates (0.04833326, 3.980667, 0), here is my script i cant seem to get it to work.
Thank You
using UnityEngine;
using System.Collections;
public class PlayerDie : MonoBehaviour {
void OnCollisionEnter2D(Collision2D collision){
if (collision.gameObject.name == "Respawn") {
StartCoroutine(DieAndRespawn());
}
}
IEnumerator DieAndRespawn() {
renderer.enabled = false;
yield return new WaitForSeconds(2.0f);
transform.position = new Vector3(0.04833326f, 3.980667f, 0.0f);
transform.rotation = Quaternion.identity;
renderer.enabled = true;
}
}
I would do this like so:
private bool _dieTimer;
private float _dieDelay = 3.0f;
private float _respawnWhen;
void Respawn(Vector3 _SP){
if(!_dieTimer){
_dieTimer = true;
_respawnWhen = Time.time + _dieDelay;
} else {
if(Time.time >= _respawnWhen){
Instantiate(PlayerPrefab, _SP, Quaternion.identity);
_dieTimer = false;
}
}
}
void Update(){
if(Player.isDead) Respawn(Player.spawnPos);
}
There is an parsaing error in the last line
void Update(){
if(Player.isDead) Respawn(Player.spawnPos);
}
i dont know why but it keeps giving me errors look http://gyazo.com/909f24457bc6a9950be94f76f4c22b28
The script in your original answer is the one I gave you as an answer to your other question.
http://answers.unity3d.com/questions/643081/help-me-with-simple-respawn-script-please-c.html
If you cannot get the script to work, you should follow up with a comment to the original answer, not open new question with exactly the same code. And you need to be specific about not working. Does it not compile? Does it compile but not do anything? Or does the character disappear and never reappear? Perhaps you don't have your Rigidbody2D and colliders setup correctly? Perhaps you have a difference in the character name vs. the string used in the script.
Put this between Lines 6 and 7:
Debug.Log(collision.collider.name);
This will tell you if the collision is being detected, and if so, the name of the object that collided.
Your Update() $$anonymous$$ethod is outside the Scope of the Class in that Image.
Answer by Ouija · Feb 18, 2014 at 10:06 PM
There is a spawning script with the FPS constructor project in the assets store. Its for spawning enemies, try modding that script for your player. Should work.
i don't think i can use the resources because the colliders are different because i am making a 2d game. I basically am trying to make a very simple script if my player hits this certain point it can be a trigger or a object the player goes back and respawns. just like when you fall of a platform you go back to where you started from.