Search Issue Tracker

Feature Request

Votes

1

Found in

6000.0.54f1

6000.1.12f1

6000.2.0b10

6000.3.0a2

Issue ID

UUM-112330

Regression

No

Animator Substate Machine Entry Node Ignores Transition Conditions

-

Reproduction steps:
1. Open the attached “IN-107460_Repro.zip“ project
2. Open the “Assets/SampleScene.unity“ Scene
3. Double-click “Assets/Test.controller“ to open it in the Animator
4. Enter Play Mode
5. Select the “Main Camera“ GameObject
6. Observe the Animator

Expected result: The “Equals to 0“ Sub-State Machine activates as the transition conditions from the Entry Node are met
Actual result: It defaults to the “Default“ State

Reproducible with: 6000.0.54f1, 6000.1.12f1, 6000.2.0b10, 6000.3.0a2

Reproducible on: M1 Max MacOS 15.5 (Tested by CQA)
Not reproducible on: No other environment tested

  1. Resolution Note:

    Hi, thank you for your bug report.

    This is a very old issue, which has been closed "As Designed" before multiple times.

    The good news is we have found a solution, but that solution requires making significant changes which go beyond the scope of a bugfix.

    We will be creating a feature request for it, and adding it to our list of potential improvements for the next version.

    In the meantime, here is a workaround you can use:

    If you create a sub-statemachine, and create your default state inside of it, you can then create a transition back to the Base state machine.  That transition will actually use the entry transitions.

    As long as the transition has a duration of zero and its conditions are fulfilled, this will behave as if the Entry transitions had been evaluated.

Comments (1)

  1. Selzier

    Jul 21, 2025 15:31

    To help explain the problem: Base Layer state machine will evaluate its [Entry] transition conditions before moving into a state or statemachine.

    However, when we create a custom Substate Machine, [Entry]'s conditions are ignored. The created substate machine will ignore transition conditions and use the StateMachine Default State instead.

    So there is a discrepancy between how Base Layer works and how custom StateMachines work.

    When transitioning to <(Up) Base Layer)>, and Base Layer’s [Entry] is called, [Entry] will evaluate its transition’s conditions and proceed to the correct State/StateMachine.

    When I transitioning to <MySubstateMachine>, and <MySubstateMachine>'s [Entry] is called, [Entry] will NOT evaluate its transition’s conditions and it will use StateMachine Default State instead.

Add comment

Log in to post comment

All about bugs

View bugs we have successfully reproduced, and vote for the bugs you want to see fixed most urgently.