Wayback Machinekoobas.hobune.stream
May JUN Jul
Previous capture 13 Next capture
2021 2022 2023
1 capture
13 Jun 22 - 13 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 Mentalist4006 · Jun 28, 2012 at 09:05 PM · networkingmultiplayerspawncollisionsteam

Sequencing Spawning for Multiplayer

I'm making a spaceship game where players spawn at a spawn point on each side. The script below, which fires once per player when they enter the scene, puts the player on a team and spawns them at the one spawn point for that team. However, if multiple players spawn at once, it becomes chaos (no one wants that). I want players to spawn only when there is no fighter already there; in other words, wait to spawn until the spawn point is clear. The "Spawn Collision Check" script mentioned uses a trigger to see if anything is inside the spawn point. Here's the code I have so far:

  var redPrefab : Transform;
 var bluePrefab : Transform;
 var redSpawn : Transform;
 var blueSpawn : Transform;
 
 function OnNetworkLoadedLevel (playerNum : int)
 {
     if (playerNum % 1 == 1){
         if (blueSpawn.GetComponent("SpawnCollisionCheck").spawnHit == true){
             yield;
         }
         else{
             Spawn(1);
         }
     }
     else{
         if (redSpawn.GetComponent("SpawnCollisionCheck").spawnHit == true){
             yield;
         }
         else{
             Spawn(0);
         }
     }
 }

I'm guessing the solution has to do with coroutines, but this script is fired once per player. How do I spawn each character in sequence?

Comment
Add comment · Show 6
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 asafsitner · Jun 28, 2012 at 09:17 PM 0
Share

Is it not possible to place more spawn points? Ideally, one per potential player on each $$anonymous$$m?

If not, you can run a 'master script' on the server to check spawn point clearance and send RPC to each player in turn to initiate spawn.

avatar image Mentalist4006 · Jul 10, 2012 at 10:00 PM 0
Share

I'm thinking now to spawn players within a spawning area. Is there a way to do this without them spawning on each other (like a collision check)?

avatar image asafsitner · Jul 10, 2012 at 10:29 PM 0
Share

Take a look at `OverlapSphere`

avatar image Mentalist4006 · Jul 13, 2012 at 08:19 PM 0
Share

Ooh, this looks perfect! I'll try this now.

avatar image Mentalist4006 · Jul 24, 2012 at 12:14 AM 0
Share

That really helps, thanks.

Show more comments

1 Reply

· Add your reply
  • Sort: 
avatar image
0

Answer by Bluestrike · Jul 24, 2012 at 07:18 AM

I have my spawnpoints added to an array, when a player spawns, this spawn is taken out of the array, and it added back when the player has left the spawn (trigger that checks if anything is in it).

For spawning I pick a random spawn from the array that holds the availeble spawns. (for a team game it would mean you need to have a spawnpoint array for eatch team.)

If you want only one spawn per team, the players would need to be in an (dead team members)array and spawned on a first come first serve basis from a spawn loop that picks the player first in the array (and remove him from the array to make room for the next in line). Not really reccomended as a jerk player can block the spawn and take the game hostage and players will leave :)

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

7 People are following this question.

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

Related Questions

Unity networking tutorial? 6 Answers

Why scene objects in multiplayer will not spawn, if enabled after scene is loaded? 2 Answers

UNET: NetworkServer.SpawnObjects() does not spawn objects loaded from Application.LoadLevelAdditiveAsync 2 Answers

Custom network ID values 0 Answers

Help needed on UNET client authority 0 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