bevyengine / bevyengine/bevy

Transform requires GlobalTransform, causing subtle bugs

Open
#21,232 7 comments 0 reactions 0 assignees View on GitHub
A-Transform C-Bug D-Complex S-Needs-Design
Dominant language
Rust
Stars
48.2k
Forks
4.8k
Avg merge
3d 16h
Merged PRs (30d)
171

Description

## Bevy version and features

0.16.2

## What you did

When inserting a `Transform` component on an entity, Bevy automatically requires and inserts a default `GlobalTransform` component. However, this default `GlobalTransform` is zero until transform propagation has run which isn't useful and potentially causes issues for code that expects `GlobalTransform` to be meaningful.

## What went wrong

`GlobalTransform` is zero when it is not expected to be. Causes subtle single-frame bugs until propagation has run.

Contributor guide

Open the contributing guide

Research direction

Start by reproducing the reported behavior in Bevy 0.16.2: insert a Transform, inspect its automatically inserted GlobalTransform before and after transform propagation, and review the related transform component and propagation entry points. Done means the default GlobalTransform no longer produces the reported single-frame inconsistency, with coverage for the insertion and propagation timing.

Written by the indexing model from the issue text.

Assessment

Tech stack
rust
Domain
game-dev
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
42/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.