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 xfrog · Mar 20, 2011 at 02:15 AM · randomspawningspawnpoint

Random Spawning

Hi,

can someone, please, tell me how to have two objects can't occupy the same position? or in other words, only one object per spawn. thank's a lot for your help

var timer : float = 0.0; var spawning : boolean = false; var prefab : Rigidbody; var spawn1 : Transform; var spawn2 : Transform; var spawn3 : Transform;

function Update () { //check if spawning at the moment, if not add to timer if(!spawning){ timer += Time.deltaTime; } //when timer reaches 2 seconds, call Spawn function if(timer >= 2){ Spawn(); } }

function Spawn(){ //set spawning to true, to stop timer counting in the Update function spawning = true; //reset the timer to 0 so process can start over timer = 0;

//select a random number, inside a maths function absolute command to ensure it is a whole number var randomPick : int = Mathf.Abs(Random.Range(1,4));

//create a location 'Transform' type variable to store one of 3 possible locations declared at top of script var location : Transform;

//check what randomPick is, and select one of the 3 locations, based on that number if(randomPick == 1){ location = spawn1; Debug.Log("Chose pos 1"); } else if(randomPick == 2){ location = spawn2; Debug.Log("Chose pos 2"); } else if(randomPick == 3){ location = spawn3; Debug.Log("Chose pos 3"); }

//create the object at point of the location variable var thingToMake : Rigidbody = Instantiate(prefab, location.position, location.rotation); thingToMake.AddForce(Vector3(0,0,100));

//halt script for 1 second before returning to the start of the process yield WaitForSeconds(1); //set spawning back to false so timer may start again spawning = false; }

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

1 Reply

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

Answer by tool55 · Mar 20, 2011 at 06:09 AM

For starters, you can save yourself some code by using an array for your spawn points:

var spawn : Transform[];

function Spawn() {

spawning = true; timer = 0;

var randomPick : int = Mathf.Abs(Random.Range(0,3));

var thingToMake : Rigidbody = Instantiate(prefab, spawn[randomPick].position, spawn [randomPick].rotation); thingToMake.AddForce(Vector3(0,0,100));

yield WaitForSeconds(1); spawning = false; }

As for your question, not quite clear what you're trying to achieve. Do you mean you only want a spawn point to be used once? In other words, are you asking how to make it so that, for example, spawn point 2 isn't used twice in a row?

Comment
Add comment · Show 2 · 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 xfrog · Mar 20, 2011 at 08:49 AM 0
Share

Thank you very much for your reply. I am sorry indeed not to be very clear, but I'm not English. Absolutely, I would like each spawn is used only once.

avatar image tool55 · Mar 20, 2011 at 05:13 PM 0
Share

I see that you got your answer on the forum. That seems like a nice solution.

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

No one has followed this question yet.

Related Questions

AI spawning areas. What are the ways to make them? 1 Answer

How to spawn player randomly in one of certain positions? 1 Answer

Spawning different items from different prefabs 2 Answers

randomise spawnpoints position 2 Answers

Advanced Wave Spawner (Spawn Waves in random order) 1 Answer


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