• 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 /
  • Help Room /
This question was closed Feb 03, 2016 at 09:43 PM by S0wbear for the following reason:

workaround found

avatar image
0
Question by S0wbear · Feb 03, 2016 at 06:22 PM · collisionrigidbodyiskinematic

Problen with collision events when changing rigidbody to iskinematic

Hi,

i have a problem where i get unexpected calls to OnCollisionExit when my player "enters" a vehicle.

My whole scene and all objects within it are inside a giant sphere collider and i have a script that deletes all objects leaving it like this:

 void OnTriggerExit (Collider other)
 {
         Destroy(other.gameObject);
 }

This is supposed to delete objects falling into infinite space.

So far, so good.

Now, i wanted to attach the player to a vehicle, using a "VehicleControls" script, that basically does the following:

 ...
         player.transform.parent = playerPos; 
         // playerPos is a GO on the vehicle where the player should be placed
         player.transform.localPosition = Vector3.zero;
         player.transform.rotation = playerPos.rotation;
 ...
         Rigidbody rgbPlayer = player.GetComponent<Rigidbody>();
         rgbPlayer.velocity = Vector3.zero;
         rgbPlayer.isKinematic = true;
 ...

Upon setting isKinematic, OnTriggerExit on the delete script is called and removes the whole player object, which isn't supposed to ever happen, and i get nullpointers in all kinds of other scripts.

A debug log shows that at the time of the event, both the vehicle an player are clearly inside the collision sphere.

What the hell is happening here?!

Comment
Add comment · Show 1
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 S0wbear · Feb 03, 2016 at 09:43 PM 0
Share

Well, i made a little workaround and "inverted" the remover collision by using a handful of box colliders as world bounds.

This seems to do the trick...

0 Replies

  • Sort: 

Welcome to Unity Answers

The best place to ask and answer questions about development with Unity.

To help users navigate the site we have posted a site navigation guide.

If you are a new user to Unity Answers, check out our FAQ for more information.

Make sure to check out our Knowledge Base for commonly asked Unity questions.

If you are a moderator, see our Moderator Guidelines page.

We are making improvements to UA, see the list of changes.



Follow this Question

Answers Answers and Comments

51 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

Related Questions

Moving rigidbody with addforce, velocity or position causes another object not to collide anymore. 0 Answers

Collider seems bigger than it is 0 Answers

Difference in friction between objects with Rigidbody and without 0 Answers

My character doesn't detect collisions or Hinge joint. 0 Answers

Why does the player hover over the ground instead of touching it? Why doesn't it always jump when I press space? 2 Answers

  • Anonymous
  • Sign in
  • Create
  • Ask a question
  • Spaces
  • Default
  • Help Room
  • META
  • Moderators
  • Explore
  • Topics
  • Questions
  • Users
  • Badges