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 /
  • Help Room /
avatar image
0
Question by ltrout1999 · Jan 16, 2018 at 03:02 AM · c#gameobjectrandomspawnfor-loop

Script Spawning Double?

I am trying to work on a script to spawn a gameobject at a random position between a range of positions but not too close to each other. It is spawning, just not correctly. It is spawning 2 sets of 12 random positions instead of just 1 set. Each set is following the correct range rules, however when the 2 sets are put together, they don't follow the range rules and are overlapping. I am unsure where I went wrong with this script and would love to get some help with it.

Here it is: using System.Collections; using System.Collections.Generic; using UnityEngine;

 public class SpawnTest : MonoBehaviour 
 {
     public GameObject prefab;
     public int wayPoints = 12;
     public float minDist = 1f;
 
     public List<Vector3> waypointPositions = new List<Vector3>();
 
      
     void Start ()
     {
         FillList();
     }
 
     void FillList ()
     {
         for (int i = 0; i < wayPoints; i++)
         {
             while (waypointPositions.Count < wayPoints)
             {
                 Vector3 randomPos = new Vector3(Random.Range(-2f, 2f), Random.Range(.5f, 4f), 0f);
 
                 bool isClose = false;
                 foreach (Vector3 wp in waypointPositions)
                 {
                     if (Vector3.Distance(wp, randomPos) <= minDist) 
                     {
                         //Debug.Log("dist: " + Vector3.Distance(wp, randomPos));
 
                         isClose = true;
                     }
                 }
 
                 if (!isClose)
                 {
                     waypointPositions.Add(randomPos);
                     Instantiate(prefab, randomPos, prefab.transform.rotation);
                     break;
                 }
             }
         }
     }
 }


When putting wayPoints = 6, I get 18 actual wayPoints. When putting wayPoints to 12, I get 24 waypoints. When putting wayPoints to 24, I get 12 wayPoints.

Comment
Add comment · Show 3
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 MaxGuernseyIII · Jan 16, 2018 at 03:38 AM 0
Share

Are those numbers predictable? You can test that by rerunning several times.

Could it be something that happens inside the prefab you are instantiating? You can test that by trying this script with a different prefab.

It's hard to understand your intent. It was hard for me, at least. It might be that there's something you think you are doing that you are not really doing or something you are doing that you think you aren't really doing. Try refactoring this method into a series of private method calls with intention-revealing names. Try refactoring the private methods the same way, if it helps add clarity.

avatar image ltrout1999 MaxGuernseyIII · Jan 16, 2018 at 03:44 AM 0
Share

The prefab I am using is a basic cylinder, no extras added. The numbers aren't predictable, they are each random every time I run it. It's just confusing me as when I put a smaller number I get more sets doubling the number I need I get the correct amount. I can provide the project files if that helps make anything easier?

avatar image MaxGuernseyIII ltrout1999 · Jan 16, 2018 at 09:41 AM 0
Share

I won't be able to go through your project but someone else might.

Why not try isolating where the problem happens? For instance, start with just taking out the instantiation line and see how many waypoint values you get. If they are incorrect, you can zero in on the problem. If they are correct, you can start looking at the instantiation as the source of the problem.

I've been over and over your algorithm. Nothing jumps out at me.

It can't hurt to swap in a different prefab or to try a different instantiate operation.

1 Reply

· Add your reply
  • Sort: 
avatar image
0

Answer by lmoro · Jan 16, 2018 at 02:04 PM

There's nothing wrong in your script.

Maybe you added the component twice?

Here's a package with a basic implementation of your script

https://drive.google.com/open?id=1fFe7jvi-SkufkVlBt-tgNTgHy4uevc23

Comment
Add comment · Show 1 · 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 ltrout1999 · Jan 16, 2018 at 04:40 PM 0
Share

I believe there was a bug in Unity itself. After removing the script from the gameobject (I checked each game object and made sure the script was only added once), it still ran and had issues. Then, after actually removing the script from the project it still ran. I ended up just retrying multiple times after Unity crashed several times and it seems to be working fine now.

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

489 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

Related Questions

How to spawn randomly with multiple gameobject 2 Answers

Spawn gameObject horde, modify concentration of spawned objects. 1 Answer

How to spawn power ups at random places on random time internvals 1 Answer

Spawn enemies so they aren't instantiated on top of each other (C#) 2 Answers

How can I make an object clone in the time that I indicate it to appear? 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