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 AnniJ · Nov 25, 2015 at 08:55 PM · looptagsforenumerate

Problem with for... in loop

Hello :)

I need to have several tags on one object, so I used a solution I found online, which is to parent my object to an EmptyGameObject which has the tag on it and then let the code find the parent to that object.

My problem is that I always get an "enumerable" error when it comes to the "for... in" loop I'm using.

This is the script:

 var curs : UI.Image;
 public var sensedObjects : GameObject;
 
 function Start () {
     sensedObjects = GameObject.FindWithTag("ben");
 }
 
 function Update () {
 var hit : RaycastHit;
 var ray : Ray = Camera.main.ScreenPointToRay(Vector3(Screen.width*0.5, Screen.height*0.5,0));
         
         //On Mouse Click: Pick up Objects with tag "eins" when looked at
         if(Input.GetMouseButtonDown(0) && Physics.Raycast(ray, hit, 100) && hit.collider.gameObject.tag == "eins"){
             Destroy(hit.transform.gameObject);
         }
                 
         //Change cursor colour when looked at object has tag "eins"
         if(Physics.Raycast(ray, hit, 100) && hit.collider.gameObject.tag == "eins"){
             curs.color = Color(0.7,0.8,0.9,1);
         } else {
             curs.color = Color.white;
         }
         
         //Find Objects with Child tagged "ben" and change cursor colour when looked at
         for (var foundOne : Transform in sensedObjects){
         
             var objectMain = foundOne.transform.parent.gameObject;
             
                 if(Physics.Raycast(ray, hit, 100)){
                     Debug.Log("Look, there's something!");
                     curs.color = Color(0.7,0.8,0.9,1);
                 } else {
                     curs.color = Color.white;
                 }        
         }
 }

I've tried replacing "Transform" with "GameObject", but it doesn't make a difference.

Does anyone know what to do or is there another way to solve my problem?

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

· Add your reply
  • Sort: 
avatar image
0

Answer by Bonfire-Boy · Nov 26, 2015 at 11:49 AM

GameObject.FindWithTag returns a single GameObject, hence not enumerable.

It looks like you want to be using GameObject.FindGameObjectsWithTag.

Comment
Add comment · Show 3 · 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 AnniJ · Dec 30, 2015 at 07:14 AM 0
Share

Thank you :) Unfortunately now I get a "Cannot convert 'UnityEngine.GameObject[]' to 'UnityEngine.GameObject'." error :/

avatar image tanoshimi AnniJ · Dec 30, 2015 at 07:56 AM 0
Share

Because sensedObjects needs to be a GameObject[]...

avatar image saschandroid AnniJ · Dec 30, 2015 at 08:04 AM 0
Share

GameObject.FindGameObjectsWithTag returns an array of GameObjects, so sensedObjects has to be an array of GameObjects (not a single GameObject like in your code).

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

6 People are following this question.

avatar image avatar image avatar image avatar image avatar image avatar image

Related Questions

How to correctly shorten this script using arrays and iterations 2 Answers

Android multitouch problem 1 Answer

change material in children 3 Answers

list.contains isn`t working 1 Answer

Unity Freezing 1 Answer


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