Wayback Machinekoobas.hobune.stream
May JUN Jul
Previous capture 12 Next capture
2021 2022 2023
1 capture
12 Jun 22 - 12 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 luigiwagner · Oct 11, 2016 at 05:22 AM · 2d game2d-gameplay2d rotation2d arrayrandomspawning

Spawning 2D objects randomly and infinitely

Hey guys, I´m pretty new to Unity and I´m trying to create a infinite runner of sorts using the engine 2D tools.

I´m currently having a LOT of headaches regarding spawning objects in my scene, infinitely and randomly.

The basic concept is pretty simple: An infinite 2D runner (where the player is always running to the right), and, as he advances, different types of obstacles appear.

For some reason, the objects have been spawning in only one location and on top of each other, and I can´t figure out how to space them out and solve this problem.

Here follows my Spawn script:

 using UnityEngine;
 using System.Collections;
 
 public class SpawnScript : MonoBehaviour {
 
     public GameObject[] obj;
     public float spawnMin = 1f; //spawn aleatoriamente entre 1s
     public float spawnMax = 2f; //e 2s
 
     // Use this for initialization
     void Start () {
         Spawn();
     }
 
     void Spawn()
     {
         Instantiate(obj[Random.Range(0, obj.Length)], transform.position, Quaternion.identity);
         Invoke("Spawn", Random.Range(spawnMin, spawnMax));
     }
 
 }
 



Comment
Add comment · Show 1
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 Bonfire-Boy · Oct 11, 2016 at 10:42 AM 0
Share

Regarding location.... You're instantiating them at the location of the object that has the SpawnScript component. So if that doesn't move, they'll always be in the same place. It's not clear what you're intending here. If you want to put them in specific places, then you need to do that. You could put the location in the instantiate call or you could grab a reference to the object when you instantiate it and set values on its transform.

1 Reply

· Add your reply
  • Sort: 
avatar image
0

Answer by Bizzy1994 · Oct 11, 2016 at 10:23 AM

You can just set a public float CooldownTime and a private float LastSpawn and use it in Update() like

 if(Time.time >= LastSpawn + CooldownTime)
 {
     Instantiate(...);
     LastSpawn = Time.time;
 }
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

5 People are following this question.

avatar image avatar image avatar image avatar image avatar image

Related Questions

Switch Players during play 2 Answers

2d shooting problem 1 Answer

Having some stuck issues on the 2D infinite runner 0 Answers

Firing Projectiles in the same direction as my character is looking. 1 Answer

What's wrong with my RayCastHit2D. Raycast only on positive values on horizontal axis and on negative values on vertical axis 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