• 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 birns92 · Apr 28, 2016 at 11:18 PM · gameobjectscript.mesh colliderhighlight

Keep gameobject highlighted until another gameobject is selected (multiple gameobjects)

This is a question I recently posted that has been answered. But it in this instance I have multiple Blocks in my scene

alt text

with the same scripts attached to them

 public GameObject otherobj;
 private float blueMultiply = 3.50f;
 private float redGreenMultiply = 0.50f;

 private Color originalColor;

 private void Start()
 {
     originalColor = gameObject.GetComponent<Renderer> ().material.color;
 }

 void OnMouseDown()
 {
     AddHighlight();
     RemoveHighlight();
 }

 private void  AddHighlight()
 {
     float red = originalColor.r * redGreenMultiply;
     float blue = originalColor.b * blueMultiply;
     float green = originalColor.g * redGreenMultiply;

     gameObject.GetComponent<Renderer> ().material.color = new Color(red, green, blue);
 }

 private void RemoveHighlight ()
 {
     otherobj.GetComponent<Renderer> ().material.color = originalColor;
 }

How can I bulk up my script so that I can anytime I Click a block it is highlighted. And when I click another block the original block Highlight is removed. In this example I have 8 blocks, in another example I may have more. How can I remove the highlight when any other game object is clicked

multiple-blocks.png (9.7 kB)
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

2 Replies

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

Answer by ThisTestWillDo · Apr 29, 2016 at 06:29 AM

Change AddHighlight to something like this:

private void AddHighlight () {

 ThisScriptsName[] allBlocks = Object.FindObjectsOfType <ThisScriptsName> ().gameObject;

 foreach (ThisScriptsName o in allBlocks) {
     o.GetComponent<Renderer> ().material.color = originalColor;
 }
 float red = originalColor.r * redGreenMultiply;
 float blue = originalColor.b * blueMultiply;
 float green = originalColor.g * redGreenMultiply;
 gameObject.GetComponent<Renderer> ().material.color = new Color(red, green, blue);

}

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 birns92 · Apr 29, 2016 at 07:07 AM 0
Share

Thanks for the response. When I use your code:

 ObjectHighlight[] allBlocks = Object.FindObjectsOfType  ().gameObject;
         foreach (ObjectHighlight o in allBlocks) {
         o.GetComponent<Renderer> ().material.color = originalColor;

I receive a syntax error 'System.Array does not contain a definition for 'gameObject'

avatar image birns92 · Apr 29, 2016 at 07:29 AM 0
Share

I brushed it up and got it to work!! Thank you so much! I will post my answer below yours for future reference.

avatar image
0

Answer by birns92 · Apr 29, 2016 at 07:32 AM

Using @ThisTestWillDo answer as well as this reference, here is my working updated script:

 private float blueMultiply = 3.50f;
 private float redGreenMultiply = 0.50f;
 private Color originalColor;
 private void Start()
 {
     originalColor = gameObject.GetComponent<Renderer> ().material.color;
 }
 void OnMouseDown()
 {
     AddHighlight();

 }
 private void  AddHighlight()
 {
     ThisScriptsName[] allBlocks = FindObjectsOfType (typeof(ThisScriptsName)) as ThisScriptsName[];
         foreach (ThisScriptsName o in allBlocks) {
         o.GetComponent<Renderer> ().material.color = originalColor;
 }

     float red = originalColor.r * redGreenMultiply;
     float blue = originalColor.b * blueMultiply;
     float green = originalColor.g * redGreenMultiply;
     gameObject.GetComponent<Renderer> ().material.color = new Color(red, green, blue);
 }

}

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

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

50 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

Related Questions

GameObject is already being activated or desactivated 2 Answers

Saving Hierarchy to file 1 Answer

GameObject references runtime script in scene file. Unsure whats wrong 2 Answers

I need help with triggers 1 Answer

How to make speech to text for WebGL? 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