Search Unity

  1. Welcome to the Unity Forums! Please take the time to read our Code of Conduct to familiarize yourself with the forum rules and how to post constructively.
  2. We have updated the language to the Editor Terms based on feedback from our employees and community. Learn more.
    Dismiss Notice

Disabled Physics Components vs. Removed Physics Components

Discussion in 'Physics for ECS' started by florianhanke, Nov 7, 2019.

  1. florianhanke

    florianhanke

    Joined:
    Jun 8, 2018
    Posts:
    426
    Hi all,

    I have an unexpected behaviour regarding the Physics Body GO component. I have a Physics Body component on a vehicle that causes it to drop due to its PhysicsMass ECS component.

    When I start the game with a disabled Physics Body GO component, my assumption was that it would not convert to a PhysicsMass ECS component, but it does (see first half of the GIF). Only when I remove the PB GO component is the ECS component not created (second half of the GIF).

    disabled-components.gif

    Is my assumption correct in that it should not create an ECS component for its entity?

    Cheers and thanks in advance

    P.S: I'm aware that this could as well go into the DOTS forum, but I _think_ the physics authoring components are managed by people reading this forum.

    P.P.S: Never mind the weird colors when the game runs, that is an issue with the URP that I have yet to figure out.

    P.P.S: Just noticed this should have gone into the DOTS Physics forum (https://forum.unity.com/forums/dots-physics.422/) – sorry about that.
     
    Last edited: Nov 7, 2019
  2. Rory_Havok

    Rory_Havok

    Joined:
    Jun 25, 2018
    Posts:
    70
    Yes that is weird. That setup should not result in a PhysicsMass component being created.
    FWIW I just tried the same thing here in the sample scenes and it behaves as expected.
     
  3. steveeHavok

    steveeHavok

    Joined:
    Mar 19, 2019
    Posts:
    481
    Agreed, this is weird. Would it be possible to get a repro of your scene running in the Samples project?

    Making stuff up of the top of my head here: Is this a prefab in the inspector, while we are looking at an instance with the enable flag overriden? Is there a parent GO with another Physics Body component? Do you have your own conversation system in operation? Is the prefab a dependency on a script somewhere else that converts it first?

    Is the graphics material using a ShaderGraph? If so, you might want to try disabling GPU instancing as a short term fix. We had that issue on the samples when we moved to 2019.3.x
     
  4. florianhanke

    florianhanke

    Joined:
    Jun 8, 2018
    Posts:
    426
    Thanks to both of you for confirming that a PhysicsMass ECS component should not be created.

    I forgot letting you know the Unity version. It's 2020.1.0a11 on OS X.

    To answer @steveeHavok 's questions (starting from the 2nd):
    1. It's an instance of a prefab. The Physics Body component is disabled while in the prefab (not visible) it's enabled.
    2. No, this is the top level GO with the Physics GO component.
    3. I have some conversion systems, but not for Physics GO components – I use the Convert To Entity GO component.
    4. Not sure what that exactly means – I use conversion scripts to convert some of my own authoring components.

    To test this I now tried with a fresh project – and started with a non-prefab cube and a prefab cube. Both have this issue (GIF with the same procedure as in the last GIF):

    disabled-components-2.gif

    Here's the manifest:

    Code (JavaScript):
    1. UnityPhysicsBodyTest $ cat Packages/manifest.json
    2. {
    3.   "dependencies": {
    4.     "com.unity.2d.sprite": "1.0.0",
    5.     "com.unity.2d.tilemap": "1.0.0",
    6.     "com.unity.ads": "2.0.8",
    7.     "com.unity.analytics": "3.3.2",
    8.     "com.unity.collab-proxy": "1.2.16",
    9.     "com.unity.ext.nunit": "1.0.0",
    10.     "com.unity.ide.vscode": "1.1.3",
    11.     "com.unity.physics": "0.2.4-preview",
    12.     "com.unity.purchasing": "2.0.6",
    13.     "com.unity.render-pipelines.universal": "7.0.1",
    14.     "com.unity.rendering.hybrid": "0.1.1-preview",
    15.     "com.unity.test-framework": "1.1.5",
    16.     "com.unity.textmeshpro": "2.0.1",
    17.     "com.unity.timeline": "1.3.0-preview.3",
    18.     "com.unity.ugui": "1.0.0",
    19.     "com.unity.xr.management": "3.0.3",
    20.     "com.unity.modules.ai": "1.0.0",
    21.     "com.unity.modules.androidjni": "1.0.0",
    22.     "com.unity.modules.animation": "1.0.0",
    23.     "com.unity.modules.assetbundle": "1.0.0",
    24.     "com.unity.modules.audio": "1.0.0",
    25.     "com.unity.modules.cloth": "1.0.0",
    26.     "com.unity.modules.director": "1.0.0",
    27.     "com.unity.modules.imageconversion": "1.0.0",
    28.     "com.unity.modules.imgui": "1.0.0",
    29.     "com.unity.modules.jsonserialize": "1.0.0",
    30.     "com.unity.modules.particlesystem": "1.0.0",
    31.     "com.unity.modules.physics": "1.0.0",
    32.     "com.unity.modules.physics2d": "1.0.0",
    33.     "com.unity.modules.screencapture": "1.0.0",
    34.     "com.unity.modules.terrain": "1.0.0",
    35.     "com.unity.modules.terrainphysics": "1.0.0",
    36.     "com.unity.modules.tilemap": "1.0.0",
    37.     "com.unity.modules.ui": "1.0.0",
    38.     "com.unity.modules.uielements": "1.0.0",
    39.     "com.unity.modules.umbra": "1.0.0",
    40.     "com.unity.modules.unityanalytics": "1.0.0",
    41.     "com.unity.modules.unitywebrequest": "1.0.0",
    42.     "com.unity.modules.unitywebrequestassetbundle": "1.0.0",
    43.     "com.unity.modules.unitywebrequestaudio": "1.0.0",
    44.     "com.unity.modules.unitywebrequesttexture": "1.0.0",
    45.     "com.unity.modules.unitywebrequestwww": "1.0.0",
    46.     "com.unity.modules.vehicles": "1.0.0",
    47.     "com.unity.modules.video": "1.0.0",
    48.     "com.unity.modules.vr": "1.0.0",
    49.     "com.unity.modules.wind": "1.0.0",
    50.     "com.unity.modules.xr": "1.0.0"
    51.   }
    52. }
    I am slightly confused as to which sample scene/Samples project you are talking about. Should I submit the new project depicted in the GIF as a case?

    Re the shader graph question:
    I was using a standard URP lit material with textures on it, no special shader graph (by me).
    In the GIF above, I am using the default URP Lit shader with no textures, and disabled GPU instancing.

    Please let me know if there's anything I can provide to help.
     
    Last edited: Nov 7, 2019
  5. florianhanke

    florianhanke

    Joined:
    Jun 8, 2018
    Posts:
    426
    I've submitted a minimal reproduction as case 1197207.
     
    steveeHavok likes this.
  6. florianhanke

    florianhanke

    Joined:
    Jun 8, 2018
    Posts:
    426
    Sadly, the answer I got has nothing to do with the minimal case I submitted (afaics) – not sure if this case now is followed up or in limbo…?
     
  7. florianhanke

    florianhanke

    Joined:
    Jun 8, 2018
    Posts:
    426
    Quick update re the above part - I reproduced it, and it appears that the culprit is the SRP Batcher:
    https://forum.unity.com/threads/disco-srp-batcher-bug.778589/

    Thanks for all the support! :)
     
    steveeHavok likes this.
  8. florianhanke

    florianhanke

    Joined:
    Jun 8, 2018
    Posts:
    426
    In 2020.1.a14 with Entities 0.2.0, the disabled Physics Body GO component does not result in a PhysicsMass component anymore. Thanks!
     
    steveeHavok and Rory_Havok like this.