Search Unity

  1. Unity 6 Preview is now available. To find out what's new, have a look at our Unity 6 Preview blog post.
    Dismiss Notice
  2. Unity is excited to announce that we will be collaborating with TheXPlace for a summer game jam from June 13 - June 19. Learn more.
    Dismiss Notice
  3. Dismiss Notice

Resolved Unity DOTS Animation and DOTS physics problem

Discussion in 'Physics for ECS' started by DevViktoria, Oct 26, 2021.

  1. DevViktoria

    DevViktoria

    Joined:
    Apr 6, 2021
    Posts:
    94
    Here is a video of the problem:


    In this project I am using the DOTS Animation package to animate the black thing on the bumper.
    I also use the DOTS physics engine for doing the physics calculations.
    If I animating with the enabled Physics body the black thing moves close to the origin. If I animate with disabled Physics body then the black thing is animated at it's original position.

    The black thing has an AnimationStateData which I am using to track the state of the animation.
    The animation happens in two steps.
    First I have TriggerAnimationSystem. This system modifies the AnimationStateData to indicate that the mocing animation should be played.
    Then I have a AnimationClipPlaySystem which changes the animation to the moving animation if the AnimationStateData indicates thet the moving animation should be playing.
    The TriggerAnimationSystem is annotated with [UpdateInGroup(typeof(FixedStepSimulationSystemGroup))][UpdateAfter(typeof(EndFramePhysicsSystem))].
    The AnimationClipPlaySystem is annotated with [UpdateBefore(typeof(DefaultAnimationSystemGroup))].

    I tried to change the AnimationClipPlaySystem to be annotated with [UpdateInGroup(typeof(FixedStepSimulationSystemGroup))][UpdateAfter(typeof(TriggerAnimationSystem))]. But this did not solved my problem.


    If you need any more information please let me know.
    Thank you for any ideas in advance.
     
  2. DevViktoria

    DevViktoria

    Joined:
    Apr 6, 2021
    Posts:
    94
    Hi,

    I found a solution: if I change the Physics body to be static it works, the way I wanted :)