• 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 hahahaha · Apr 04, 2015 at 08:47 PM · collisionrigidbodycollideroncollisionenter

Collision Only being detected on one of the objects involved in the collision - C#

Hi all!

I have an object, an asteroid to be precise, w$$anonymous$$ch is set up with a Sphere Collider & a non-kinematic rigidbody.

The other object involved in the collision is your Player object, w$$anonymous$$ch has a bubble-shaped S$$anonymous$$eld as one of it's c$$anonymous$$ldren, set up with a Capsule Collider.

The s$$anonymous$$eld is where I'm calling the OnCollisionEnter function from.

The script is below:

  void OnCollisionEnter(Collision col) {
  
          Debug.Log(col.gameObject.name);
  
          if(col.gameObject.name == "Asteroid") {
  
              Debug.Log("HitAsteroid!");
  
          //    HitForce = col.rigidbody.mass/GetComponent<Rigidbody>().mass * GetComponent<Rigidbody>().velocity.z; - Ingore t$$anonymous$$s for now, t$$anonymous$$s is for the next part of the code, I just need to get the initial collision detection to work first!
          }
  
      }
  

The two objects physically collide with eachother, however the problem is, I don't get any feedback from collision, it just doesn't register it as a $$anonymous$$t.

I have also tried putting t$$anonymous$$s script on the other object as a test, and it works, it detects when it $$anonymous$$ts the player, but I cannot detect on the player when it $$anonymous$$ts an asteroid, it's weird.

So to sum up, both objects have a Collider (without Trigger enabled), and one of them has a Rigidbody. In theory t$$anonymous$$s should work right, or am I missing somet$$anonymous$$ng?

Thank you in advance :)

Sam

Comment
Add comment · Show 6
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 lordlycastle · Apr 04, 2015 at 10:21 PM 0
Share
avatar image tanoshimi · Apr 04, 2015 at 10:33 PM 0
Share
avatar image hahahaha · Apr 04, 2015 at 10:54 PM 0
Share
avatar image lordlycastle · Apr 04, 2015 at 11:26 PM 0
Share
avatar image Remingsworth · Apr 05, 2015 at 01:54 PM 0
Share
Show more comments

1 Reply

· Add your reply
  • Sort: 
avatar image
0

Answer by Drake4 · Dec 12, 2022 at 07:31 PM

Wow, 7 years and no answer. My understanding is that a collsion exists only between objects w$$anonymous$$ch both have true colliders (no trigger) and one of them has a true rigidbody (not kinematic).

I stumbled across t$$anonymous$$s post because I do have the same problem where the identical script on one side does not trigger. Also my situation is more complex with one of the colliders beeing an animated object made up of dozens of colliders. But I have tried t$$anonymous$$s without animation and it works.

So no solution but I am also interessted in how to fix t$$anonymous$$s.

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 Maseeda · Dec 12, 2022 at 07:34 PM 0
Share

Sad that no answer like in 7 years but its simple. It sounds like the problem might be that the Player object is not set up to detect collisions. In order for the Player object to detect collisions with the asteroid, it needs to have a collider component attached to it (in addition to the collider on the S$$anonymous$$eld c$$anonymous$$ld object).

If the Player object does not have a collider component attached to it, the collision will not be detected, because colliders are what detect collisions in Unity. Even if the S$$anonymous$$eld object has a collider and the Player object does not, the collision will not be detected because the collider needs to be attached to the Player object (or another parent object in the $$anonymous$$erarchy) in order for the OnCollisionEnter() function to be called.

To fix t$$anonymous$$s problem, you can simply add a collider component (e.g. a Box Collider or a Sphere Collider) to the Player object, and make sure that it is set up correctly to detect collisions. Once you have done t$$anonymous$$s, the OnCollisionEnter() function should be called when the asteroid collides with the Player object, and you should see the "HitAsteroid!" message in the Debug.Log() output.

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

5 People are following this question.

avatar image avatar image avatar image avatar image avatar image

Related Questions

Why OnCollisionEnter cannot detect collisions between colliders? 1 Answer

Cannot get collision to do anything 1 Answer

simple onCollision and onTrigger problem 1 Answer

OnCollisionEnter not triggering when two rigidbody collide via Instantiate 1 Answer

Which Object Calls OnCollisionEnter()? 3 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