Wayback Machinekoobas.hobune.stream
May JUN Jul
Previous capture 14 Next capture
2021 2022 2023
2 captures
13 Jun 22 - 14 Jun 22
sparklines
Close Help
  • Products
  • Solutions
  • Made with Unity
  • Learning
  • Support & Services
  • Community
  • Asset Store
  • Get Unity

UNITY ACCOUNT

You need a Unity Account to shop in the Online and Asset Stores, participate in the Unity Community and manage your license portfolio. Login Create account
  • Blog
  • Forums
  • Answers
  • Evangelists
  • User Groups
  • Beta Program
  • Advisory Panel

Navigation

  • Home
  • Products
  • Solutions
  • Made with Unity
  • Learning
  • Support & Services
  • Community
    • Blog
    • Forums
    • Answers
    • Evangelists
    • User Groups
    • Beta Program
    • Advisory Panel

Unity account

You need a Unity Account to shop in the Online and Asset Stores, participate in the Unity Community and manage your license portfolio. Login Create account

Language

  • Chinese
  • Spanish
  • Japanese
  • Korean
  • Portuguese
  • Ask a question
  • Spaces
    • Default
    • Help Room
    • META
    • Moderators
    • Topics
    • Questions
    • Users
    • Badges
  • Home /
avatar image
0
Question by Kessoe · Apr 10 at 04:00 PM · c#3dcollision detectionspawnpointsrespawning

How do I get this simple respawn system working in?

I'm working on a 3D game in Unity where you die if you fall off the platforms. The aim is to respawn after you fall off a platform. At first it worked, but after I made a completely new movement system (with a character controller), a new player and a new camera it no longer works.

I want to make the player respawn after falling off a platform, I used a large cube under the platforms that serves as a death trigger. After the player comes into contact with it, he must randomly appear on one of the nine platforms. Looks like the random-spawnpoint-picker still works. The only problem is that the player does not respawn. In very very rare cases the player does respawn. How can I get this working consistent?

I would really appreciate help! I really tried my best to explain everything as clearly as possible :)


Detailed information:

  • I placed 9 empty game objects above the platforms with a "SpawnPoint" tag

  • The selected spawnpoint will be a random picked number (0-8) and is activated at start and when the player comes into contact with the death trigger

  • The player can't move anymore when extra lives < 0

  • The spawnpoints will be destroyed if the player reaches 0 extra hearts

  • The water has no colliders or anything


The scene - platforms with one of the respawn points selected (might be useful for context) alt text


Respawn script attached to the player:

 public class PlayerRespawn : MonoBehaviour
 {
 
     // Spawning
     [SerializeField] private string tagName;
     [SerializeField] private GameObject[] spawnPoints;
     [SerializeField] private GameObject selectedSpawnpoint;
 
     // Sound Effects
     public AudioSource source;
     public AudioClip clip;
 
     void Start()
     {
         int rand = Random.Range(0, 8);
         selectedSpawnpoint = spawnPoints [rand];
     }
 
     void Update()
     {
         if(spawnPoints == null)
         {
             spawnPoints = GameObject.FindGameObjectsWithTag(tag);
         }
     }
 
     void OnTriggerEnter(Collider col)
     {
         if(col.transform.tag == "DeathTrigger")
         {
             this.transform.position = selectedSpawnpoint.transform.position;
 
             source.PlayOneShot(clip);
 
             Debug.Log("AU!");
         }
 
         int rand = Random.Range(0, 8);
         selectedSpawnpoint = spawnPoints [rand];
     }
 }

Player lives script (not sure if this script has anything to do with the problem):

 public class PlayerLives : MonoBehaviour
  {
      public int extraPlayerHearts = 3;
      
      void OnTriggerEnter(Collider other)
      {
          extraPlayerHearts = extraPlayerHearts - 1;
  
          // The spawnpoints will be destroyed if the player reaches 0 extra hearts
          if(extraPlayerHearts <= 0)
          {
              GameObject[] foundObjects = GameObject.FindGameObjectsWithTag("SpawnPoint");
  
              foreach (GameObject go in foundObjects)
              {
                  Destroy(go);
              }
          }
  
          if(extraPlayerHearts < 0)
          {
              Debug.Log("You Died!");
              GetComponent<PlayerController>().enabled = false;
          }
      }
  }

The scripts in the inspector: alt text

scriptsininspector.jpg (67.5 kB)
platforms.jpg (266.1 kB)
Comment
Add comment
10 |3000 characters needed characters left characters exceeded
▼
  • Viewable by all users
  • Viewable by moderators
  • Viewable by moderators and the original poster
  • Advanced visibility
Viewable by all users

3 Replies

· Add your reply
  • Sort: 
avatar image
0
Best Answer

Answer by Kessoe · Apr 16 at 07:55 PM

After a week of struggling, I have a working script! It's a mix of two replies to this forum post.


This code works for me:

 public class NewPlayerRespawn : MonoBehaviour
 {
     // Spawning
     [SerializeField] private GameObject[] spawnPoints;
     [SerializeField] private GameObject selectedSpawnpoint;
     private Transform transformSpawnpoint;
     public GameObject playerPrefab;
     private GameObject newPlayer;
 
     // Sound Effects
     public AudioSource source;
     public AudioClip clip;
 
     void Start()
     {
         int rand = Random.Range(0, 8);
         selectedSpawnpoint = spawnPoints [rand];
 
         transformSpawnpoint = selectedSpawnpoint.transform;
     }
 
     void Update()
     {
         if(this.transform.position.y <= 2f)
         {
             Respawn();
             int rand = Random.Range(0, 8);
             selectedSpawnpoint = spawnPoints [rand];
         }
     }
 
     void Respawn()
     {
         Destroy(gameObject);
         newPlayer = Instantiate(playerPrefab, transformSpawnpoint.position, transformSpawnpoint.rotation);
     }
 }
Comment
Add comment · Share
10 |3000 characters needed characters left characters exceeded
▼
  • Viewable by all users
  • Viewable by moderators
  • Viewable by moderators and the original poster
  • Advanced visibility
Viewable by all users
avatar image
0

Answer by divinereignoflords · Apr 10 at 06:06 PM

  public string player_prefab; # this is your character, which has the camera and all attached to it
  public Transform spawn_point; # the empty/object where you want respawn to occur
 
 
 if(extraPlayerHearts < 0)
           {
               Debug.Log("You Died!");
               GetComponent<PlayerController>().enabled = false;
               Spawn();
           }
 
 public void Spawn()
         {
             Player = Instantiate(player_prefab, spawn_point.position, spawn_point.rotation);
       
 
   }
 

try something like this

Comment
Add comment · Show 8 · Share
10 |3000 characters needed characters left characters exceeded
▼
  • Viewable by all users
  • Viewable by moderators
  • Viewable by moderators and the original poster
  • Advanced visibility
Viewable by all users
avatar image Kessoe · Apr 11 at 04:29 PM 0
Share

And what is the purpose of the string?

avatar image Caeser_21 Kessoe · Apr 11 at 05:46 PM 0
Share

You have to change string to GameObject... I think OP made a mistake.

avatar image divinereignoflords Kessoe · Apr 13 at 12:46 AM 0
Share

yes its GameObject sorry, let me know if that works or helps

avatar image Kessoe divinereignoflords · Apr 13 at 03:47 PM 0
Share

It still doesn't work, I get errors with "public void Spawn()" (I tried deleting public) and "Player" (Player is no thing (I tried changing Player into player_prefab)). Even after I made some adjustments it still doesn't work.

Show more comments
avatar image
0

Answer by yahlimem · Apr 15 at 04:13 PM

Maybe just check for the Y position of the player If(player.transform.position <= the Y you want) Respawn();

Comment
Add comment · Share
10 |3000 characters needed characters left characters exceeded
▼
  • Viewable by all users
  • Viewable by moderators
  • Viewable by moderators and the original poster
  • Advanced visibility
Viewable by all users

Your answer

Hint: You can notify a user about this post by typing @username

Up to 2 attachments (including images) can be used with a maximum of 524.3 kB each and 1.0 MB total.

Follow this Question

Answers Answers and Comments

791 People are following this question.

avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image

Related Questions

Collision problem 4 Answers

Multiple Cars not working 1 Answer

Distribute terrain in zones 3 Answers

OnTriggerEnter called much less often after a player respawn? 1 Answer

How to make particles collide with something but at the same time phase through it 2 Answers


Enterprise
Social Q&A

Social
Subscribe on YouTube social-youtube Follow on LinkedIn social-linkedin Follow on Twitter social-twitter Follow on Facebook social-facebook Follow on Instagram social-instagram

Footer

  • Purchase
    • Products
    • Subscription
    • Asset Store
    • Unity Gear
    • Resellers
  • Education
    • Students
    • Educators
    • Certification
    • Learn
    • Center of Excellence
  • Download
    • Unity
    • Beta Program
  • Unity Labs
    • Labs
    • Publications
  • Resources
    • Learn platform
    • Community
    • Documentation
    • Unity QA
    • FAQ
    • Services Status
    • Connect
  • About Unity
    • About Us
    • Blog
    • Events
    • Careers
    • Contact
    • Press
    • Partners
    • Affiliates
    • Security
Copyright © 2020 Unity Technologies
  • Legal
  • Privacy Policy
  • Cookies
  • Do Not Sell My Personal Information
  • Cookies Settings
"Unity", Unity logos, and other Unity trademarks are trademarks or registered trademarks of Unity Technologies or its affiliates in the U.S. and elsewhere (more info here). Other names or brands are trademarks of their respective owners.
  • Anonymous
  • Sign in
  • Create
  • Ask a question
  • Spaces
  • Default
  • Help Room
  • META
  • Moderators
  • Explore
  • Topics
  • Questions
  • Users
  • Badges