• 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 frostbind27 · Oct 02, 2017 at 09:28 PM · comparetag

How do I check if an object has a tag

I'm trying to make a selection system using tags on objects to identify if they can be selected or not. However, with my current code, it doesn't seem to be working

this is my script, if anyone knows what the problem is, please correct me; However, if There is a better way to do this, please tell me.

void Update() {

     Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);
     //Ray from camera to mouse position
     RaycastHit HitInfo;
     //Hitinfo is being created to store info from objects hit by the ray
     if (Physics.Raycast(ray, out HitInfo))
     {
         IsObjectSelectable();

     }
     else return;
     

 }
 void SelectingCounters()
 {
     if (Selected == false)
     {
         Hovering += SelectionCounter;
         Debug.Log(Hovering);
     }
     else Hovering = 0;
     ObjectSelected += SelectionCounter;
     
 void ObjectSelector()
 {
     if (Hovering > 1)
     {
         Debug.Log("Selected!");
         Selected = true;
         Hovering = 0;
     }
     else if (ObjectSelected > 1)
     {
         Debug.Log("Deselected");
         Selected = false;
         ObjectSelected = 0;
     }
 }
 void WasButtonPressed()
 {
     if (Input.GetMouseButtonDown(0))
     {
         ObjectSelector();
     }
     else return; 
 }

void IsObjectSelectable() { Selectable = GameObject.FindWithTag("Selectable"); DoesObjectHaveTag();

 }

 private void DoesObjectHaveTag()
 {
     if (HitInfo.collider.gameObject.CompareTag("Selectable"))
     {
         HoverTimer();
         SelectingCounters();
         WasButtonPressed();
     }
     else return;
 }

 void HoverTimer()
 {
     if (Hovering > 500)
     {
         Debug.Log("HoverOver Message");
         Hovering = 2;
     }
 }
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 hexagonius · Oct 02, 2017 at 10:51 PM 0
Share

What does not work?

avatar image frostbind27 hexagonius · Oct 03, 2017 at 04:34 PM 0
Share

if (HitInfo.collider.gameObject.CompareTag("Selectable"))

Show more comments

2 Replies

· Add your reply
  • Sort: 
avatar image
1

Answer by YoucefB · Oct 03, 2017 at 05:17 PM

Probably HitInfo.collider.gameObject is returning a null reference , so you should check first if the gameObject is not null

  if (HitInfo.collider != null && HitInfo.collider.gameObject.CompareTag("Selectable"))
      {
     //...
      }



And if you want to know if an object has a tag use:

if(gameObject.tag != "Untagged")

Comment
Add comment · 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
0

Answer by Topthink · Oct 02, 2017 at 10:56 PM

Click on the object (in the scene, etc).

At the top of the inspector you will see a "Tag" field that initially is set to "Untagged".

You can change the tag of the object here to anything you want including adding a new custom tag of your own.

Good Luck.

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 frostbind27 · Oct 03, 2017 at 04:25 PM 0
Share

I did that, and I still get the error:

NullReferenceException: Object reference not set to an instance of an object $$anonymous$$ouseController.DoesObjectHaveTag() (at Assests/Scripts/$$anonymous$$ouseController.cs:79)

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.

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

72 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

Related Questions

CompareTag and OverlapSphere 1 Answer

Is CompareTag faster than checking directly the GameObject? 1 Answer

Comparing Tag Groups 1 Answer

How can I make the Player be destroyed when I touch the end of the camera? 1 Answer

How do I add a new tag in Unity? 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