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 Spider_newgent · Feb 25, 2015 at 08:42 AM · raycastprefabinstancemouse click

Clicking one prefab effects them all.

Hi. I know this is simple, but I couldn't find an answer here or elsewhere online.

I have a prefab called "cuboid" which has been copied a number of times. I'm detecting a mouse click using raycast, then printing to the debug log. The issue is that when one object is clicked, all instances print to the debug log, not just the one clicked.

The script is on each instance of the prefab:

 #pragma strict
  
 function Update () 
 {
     if (Input.GetMouseButtonDown(0)) 
     {
         var hit: RaycastHit;
         var ray = Camera.main.ScreenPointToRay(Input.mousePosition);
       
         if (Physics.Raycast(ray, hit)) 
         {
             if (hit.transform.name == "cuboid" )Debug.Log( "Object was clicked");
         }
     }
 }

Can someone please indicate why this is happening and how to correct it?

Thanks

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 Bonfire-Boy · Feb 25, 2015 at 08:49 AM 0
Share

The ray is deter$$anonymous$$ed by the camera and mouse position, and you check if it hits something with a specific name. So there's nothing in that that's specific to the object the component is on. Why would you expect it to behave differently from one object to another?

avatar image Spider_newgent · Feb 25, 2015 at 08:55 AM 0
Share

So the ray hits the one object I've clicked on, which triggers the script on each object in the scene with the same name? In that case, how can I only get the object clicked to print to debug?

Thanks

avatar image Bonfire-Boy · Feb 25, 2015 at 09:32 AM 0
Share

What you're doing is like telling everyone in a room to scratch their nose whenever a fly lands on Fred's nose. You need to tell them to scratch their nose when a fly lands on their own nose.

So get them to look at the transform in the hit object and ask, "is it my transform?"

2 Replies

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

Answer by Spider_newgent · Feb 25, 2015 at 09:19 AM

This post contains the answer to the question, for anyone who encounters it in future:

http://answers.unity3d.com/questions/633724/want-to-be-able-to-change-color-of-individual-cube.html

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
1

Answer by Mmmpies · Feb 25, 2015 at 09:30 AM

Have you considered using OnMouseDown or OnMouseUp?

Saves bothering with a raycast and should only trigger on the cuboid under the mouse.

Also works for touch devices.

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.

Follow this Question

Answers Answers and Comments

21 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

Related Questions

raycasting prefab instances 0 Answers

Placing buildings 1 Answer

Is there a quick way to replace an object with a prefab instance? 1 Answer

Gun Script 1 Answer

Not serializable anymore when also a prefab 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