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 terpfiend · Apr 08, 2016 at 06:29 AM · scripting problemspawnspawning problemsobject poolspawner

question about object pooling an array and spawning

Hey guys, first time posting here so I hope it's all formatted correctly. So right now i'm trying to make a simple frogger game in which the cars are stored in a pool of objects and spawned randomly.

The problem I'm facing is that the first couple cars to be spawned are always the same. It'll usually do 3-5 of the same car in a row and then begin randomizing them (there are 23 in total).

Here are my Object Pooler and Car Spawning scripts:

Object Pooler:

 using System.Collections.Generic;
 
 public class ObjectPoolerScript : MonoBehaviour {
 
     public static ObjectPoolerScript current;
     public GameObject[] pooledObject;
     public int pooledAmount = 20;
 
     List<GameObject> pooledObjects;
 
     void Awake()
     {
         current = this;
     }
 
     void Start ()
     {
         int randomIndex = Random.Range(0, pooledObject.Length);
         pooledObjects = new List<GameObject>();
         for (int i = 0; i < pooledAmount; i++)
         {
             GameObject obj = (GameObject)Instantiate(pooledObject[randomIndex]);
             obj.transform.parent = transform;
             obj.SetActive(false);
             obj.SetActive(false);
             pooledObjects.Add(obj);
         }
     }
 
     public GameObject GetPooledObject()
     {
         int randomIndex = Random.Range(0, pooledObject.Length);
         if (pooledObjects.Count == 0)
         {
             GameObject obj = (GameObject)Instantiate(pooledObject[randomIndex]);
             obj.transform.parent = transform;
             obj.SetActive(false);
             obj.SetActive(false);
             pooledObjects.Add(obj);
         }
 
         // Get a reference to the first gameobject in the pool.
         GameObject ret = pooledObjects[0];
 
         // Remove that gameobject from the pool list.
         pooledObjects.RemoveAt(0);
 
         // Activate the instance.
         ret.SetActive(true);
 
         // Put it in the root of the hierarchy.
         ret.transform.parent = null;
 
         // Return the unpooled instance.
         return ret;
     }
 }

Car Spawner:

 using System.Collections.Generic;
 
 public class CarFireScript : MonoBehaviour {
 
     public float fireTime = 1f;
 
     void Start ()
     {
 
         InvokeRepeating("Fire", fireTime, fireTime);
     }
     
     // Update is called once per frame
     void Fire ()
     {
         GameObject obj = ObjectPoolerScript.current.GetPooledObject();
 
         if (obj == null) return;
 
         obj.transform.position = transform.position;
         obj.transform.rotation = transform.rotation;
         obj.SetActive(true);
 
     }
 
 }
 

In my inspector I have been messing with the Pooled Amount, but have it at 10 for now. I've noticed the larger the number the more often repeats are spawned.

Anyone have some suggestions? I'd appreciate any help.

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

0 Replies

· Add your reply
  • Sort: 

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

57 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

Related Questions

How to know if there is no possible space on board to spawn. 1 Answer

how can I add a maximum of enemies to be generated for each wave? 0 Answers

[C#] Only one instantiate object is working, the rest is not.. Help meee 0 Answers

spawning problems, using array for random objects,Spawning rand prefab from array, destroy when not in the view of camera, roll new one. 0 Answers

spawn 1 enemy and once destroyed spawn another= 2 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