Search Issue Tracker
By Design
Votes
0
Found in
2018.3.0a6
2018.3.0b10
2019.1.0a1
Issue ID
1102555
Regression
Yes
DeltaPosition stays at 0 when Apply Root Motion is disabled
How to reproduce:
1. Open the user's attached project
2. Open SampleScene
3. Enter the Play Mode
Expected result: Delta Position changes
Actual result: Delta Position stays at 0
Not reproducible on 2017.4.16f1, 2018.1.9f2, 2018.2.17f1, 2018.3.0a5
Reproducible on 2018.3.0a6, 2018.3.0b11, 2019.1.0a10
-
EMClick
Oct 29, 2023 08:10
This is currently happening to me with version 2022.3.11f1
-
Bubsavvy
Feb 02, 2019 17:15
This is still an issue in unity 2018.3.3f1... My script is the following :
Note : I am using a unity plugin called KinematicMotorController, however, it was working in previous updates prior to 2018.2.2f1.
using System.Collections;
using System.Collections.Generic;
using UnityEngine;public class AnimationController : MonoBehaviour {
private void OnAnimatorMove()
{
PlayerController playerController = transform.parent.GetComponent<PlayerController>();
Vector3 transformPosition = playerController && playerController.Motor ? playerController.Motor.TransientPosition : Vector3.zero;if (transformPosition != Vector3.zero)
{
Vector3 change = GetComponent<Animator>().deltaPosition;
playerController.Motor.SetPosition(transformPosition += change);
}
}
} -
Bubsavvy
Jan 26, 2019 05:18
So I am assuming the issue is fixed if we update correct?
-
Bubsavvy
Jan 26, 2019 05:17
Also reproduced in version 2018.2.2f1. deltaPosition remains unchanged in OnAnimatorMove.
Add comment
All about bugs
View bugs we have successfully reproduced, and vote for the bugs you want to see fixed most urgently.
Latest issues
- Rigidbody2D.Slide API does not have the needed configuration when creating a 2D Top-Down character controller
- Opening reference for "Playables"component redirects to a missing page
- Sprite Renderer image is changed when switching Mask Interaction and changing Sprite to a shared Sprite
- An unsigned integer is not compared with an integer correctly in player when using IL2CPP backend
- Graphical artifacts are being rendered in Scenes that are loaded during run-time when GPU Resident Drawer is turned on
Resolution Note (2019.1.X):
This behaviour changed when we straightened up how root motion is applied in the Animator. Beforehand, root motion was calculated whether it was enabled or not when you had a character with root motion curve (effectively updating deltaPosition and deltaRotation). Now, we only calculate it if applyRootMotion is enabled.
Implementing "OnAnimatorMove" in your component will allow you to control how root motion is applied on your character. You could very well just implement a blank function and still get deltaPosition and deltaRotation this way.