Wayback Machinekoobas.hobune.stream
May JUN Jul
Previous capture 13 Next capture
2021 2022 2023
1 capture
13 Jun 22 - 13 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 Hamesh81 · Feb 20, 2014 at 06:09 AM · arrayparentitemiterategeneric list

How can I parent each item from one array to each item in another array?

I'm creating "two" arrays:

1) The first is simply an array of gameobjects with a specific tag

2) For the second (which is actually a generic list) I instantiate one prefab for every item that exists in the first array eg. if there are 7 items, 7 prefabs are instantiated. I then populate the generic list with all the instantiated prefabs.

Now what I would like to do is iterate through the generic list and parent each item to one item in the first array. But for some reason I can only manage to parent all the generic list items to one item in the array. Here is what I have so far:

 using UnityEngine;
 using System.Collections;
 using System.Collections.Generic;
 
 [System.Serializable]
 public class MapObjects {
     
     public string objectTag;
     public GameObject iconPrefab;
     public GameObject[] objectsTagged;
     public List<GameObject> iconPrefabs;
     
 }
 
 public class Map: MonoBehaviour {
 
     public MiniMapObjects[] miniMapObjects;
 
     // Use this for initialization
     void Start () {
 
         foreach(var element in miniMapObjects) {
             element.objectsTagged = GameObject.FindGameObjectsWithTag(element.objectTag);
             foreach(var taggedObjects in element.objectsTagged) {
                 GameObject objects = (GameObject) Instantiate(element.iconPrefab, transform.position, transform.rotation);
                 element.iconPrefabs.Add(objects);
             }
             for(var i = 0; i < element.iconPrefabs.Count; i++) {
                 icon.transform.parent = taggedObjects.transform;
             }
         }
     }

The only similar solutions I can find online is parenting multiple array items to a single object, but I can't find any solutions about parenting multiple items to other multiple items. So how could I do this?

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

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

Answer by whydoidoit · Feb 20, 2014 at 06:16 AM

It feels to me like you should do this:

 void Start () {
 
    foreach(var element in miniMapObjects) {
      element.objectsTagged = GameObject.FindGameObjectsWithTag(element.objectTag);
      foreach(var taggedObjects in element.objectsTagged) {
       GameObject objects = (GameObject) Instantiate(element.iconPrefab, transform.position, transform.rotation);
       objects.transform.parent = taggedObjects.transform;
       element.iconPrefabs.Add(objects);
      }
      
    }
 }
Comment
Add comment · Show 2 · 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 whydoidoit · Feb 20, 2014 at 06:17 AM 0
Share

In your code taggedObjects would refer to the last element in the array as the for loop has ended

avatar image Hamesh81 · Feb 20, 2014 at 06:25 AM 0
Share

Yes and yes, exactly right! I've been banging my head on the desk for the last few hours trying to figure this out. Thanks a lot :)

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

20 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

Related Questions

changing the camera's local position with Vector3 variables coming from an array 2 Answers

How do I have my players stats on the HUD? 0 Answers

How to determine what type of class is being interated through in an array of multiple classes 1 Answer

Displaying/getting elements of a list in a certain order 3 Answers

Inventory moving items bug. 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