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 suIly · Mar 08, 2018 at 06:08 PM · 1st person

WaitForSeconds Error

Hey! I've been trying to spawn enemies every five seconds with Instantiate, but the code keeps on giving me an error when I try. Any answers?

using System.Collections; using System.Collections.Generic; using UnityEngine;

public class Spawn : MonoBehaviour {

 public float startPositionX;
 public float startPositionY;
 public float startPositionZ;
 public GameObject enemyObject;

 void Start () 
 {        
     for(int i = 0; i < 10; i++)
     {
         Instantiate(enemyObject, new Vector3(0, startPositionY, Random.Range(0f, -20f)), Quaternion.identity);
         StartCoroutine(Wait);
     }
 }

 IEnumerator Wait()
 {
     yield return new WaitForSeconds(5);
 }

}

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 myzzie · Mar 08, 2018 at 06:11 PM 0
Share
 StartCoroutine(Wait());

1 Reply

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

Answer by Tsequier · Mar 08, 2018 at 06:42 PM

A coroutine is executed on a separated thread, so your code in your for won't wait for 5 seconds and will spawn all enemies in one frame.

If you want to spawn enemies with a 5 seconds delay, you need to put the Instantiate function in a coroutine as well.

For example, something like

 IEnumerator Wait()
 {
      for(int i = 0; i < 10; i++)
      {
          Instantiate(enemyObject, new Vector3(0, startPositionY, Random.Range(0f, -20f)), Quaternion.identity);
          yield return new WaitForSeconds(5);
      }
 }

and your Start function will look like something like this

 void Start()
 {
      StartCoroutine(Wait());
 }


(Note that if the code you provided you forgot the "()" after your method name in StartCoroutine)

Hope this helps !

Comment
Add comment · Show 4 · 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 suIly · Mar 08, 2018 at 07:00 PM 0
Share

That helped! Thanks so much! $$anonymous$$illion hugs!

avatar image Tsequier suIly · Mar 08, 2018 at 07:04 PM 0
Share

No problems ! Good luck in your development !

avatar image Hellium · Mar 08, 2018 at 07:45 PM 0
Share

Note: a coroutine is not executed in a separate thread. Unity runs in a unique thread, coroutines included.

avatar image Tsequier Hellium · Mar 08, 2018 at 07:50 PM 0
Share

You are absolutely right, I made a unnecessary shortcut thinking it would help the understanding of the problem, my bad!

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

76 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

Related Questions

3rd person to 1st person view with two engines 0 Answers

In roll a ball the ball go to outside the wall why any one ans me 1 Answer

addforce please 0 Answers

Character controller stops walking in middle of air 0 Answers

How to detect what layer is colliding 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