• 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 /
This question was closed Oct 18, 2015 at 01:32 PM by Beizsles for the following reason:

Other

avatar image
0
Question by Beizsles · Jun 09, 2014 at 07:15 PM · c#arraysdeclaration

Declaring an Array as a combination of multiple other arrays?

Okay, so I'm currently working on a project in which I need to be able to randomly spawn certain objects in to the world. Currently, I'm working on ships. Basically, I want to be able to 'unlock' new ships, from separate arrays over time. Here's an example of what I mean. It's a snippet of code from the main spawning script that I'm working on.

     public GameObject[] currentShips;
     public GameObject[] starterShips;
     public GameObject[] advancedShips;
     public GameObject[] endShips;
 
     private int randomShip;
 
     void FixedUpdate () {
         if (time >= 60) {
             currentShips = starterShips, advancedShips;
             if (time >= 180){
                 currentShips = starterShips, advancedShips, endShips;
             }
         }

Now, at the end there, you'll see that I've tried to declare an array as multiple others with a comma. Of course, this didn't work. So, how can I achieve this? currentShips is used later on to actually spawn a ship, picked at random from the currentShips.

Thanks in advance.

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

  • Sort: 
avatar image
0
Best Answer

Answer by Regalith · Jun 09, 2014 at 07:39 PM

So the issue is that the arrays you're currently using have a set maximum size that have been allocated for them, which I'm guessing you've set in the inspector. So what you need is a type of array that is dynamic in size. I'd suggest using a list for current ships while leaving the rest static arrays so you can drag in game objects in the inspector. Here's some sample list code

 using UnityEngine;
 using System.Collections;
 using System.Collections.Generics;
 
 private List<GameObject> currentShips;
 public GameObject[] starterShips;
 public GameObject[] advancedShips;
 public GameObject[] endShips;
 
 private int randomShip;
 
 void Start()
 {
    //Lists have to be initialized before using them
    currentShips = new List<GameObject>();
    //Add the start ships to the List
    currentShips.AddRange(starterShips);
 }
 
 void FixedUpdate () 
 {
    if (time == 60)
    {
       currentShips.AddRange(advancedShips);
       if (time == 180)
       {
           currentShips.AddRange(endShips);
       }
    }
 }
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 Beizsles · Jun 09, 2014 at 07:45 PM 0
Share

Thank you very much, that's the exact kind of thing that I was looking for. I have a pretty patchy knowledge of Unity at the moment, so hopefully this can help me out in the long run, too. :P

Welcome to Unity Answers

If you’re new to Unity Answers, please check our User Guide to help you navigate through our website and refer to our FAQ for more information.

Before posting, make sure to check out our Knowledge Base for commonly asked Unity questions.

Check our Moderator Guidelines if you’re a new moderator and want to work together in an effort to improve Unity Answers and support our users.

Follow this Question

Answers Answers and Comments

22 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

Related Questions

Distribute terrain in zones 3 Answers

Multiple Cars not working 1 Answer

Array not updating in inspector 0 Answers

MergeSort function acting strange 0 Answers

Efficient Electrical Grid in Tiled Game 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