What problem does this solve or what need does it fill?
A full 3D affine transform is a poor fit for UIs and often overkill for 2D uses. Transform and it's propagation system is a major bottleneck in PostUpdate, with a large number of potentially separable systems dependent on them.
What solution would you like?
Split out Transform2D and RectTransform from Transform, explicitly for their respective use cases.
Pros
Both can be smaller in memory than Transform and GlobalTransform.
Math on both will be simpler (and faster)
Would likely fix any oddities when dealing with Z-positions in both UI and 2D by strictly defining inheritance behavior of depth.
UI and 2D propagation and dependent systems parallelize more readily with 3D systems.
UI probably doesn't need a dedicated propagation or GlobalTransform equivalent, relying on the UI layouting algorithm instead.
Cons
Higher complexity. Recreating propagation outside of PostUpdate is now more involved.
Different components adds mental overhead to users.
What problem does this solve or what need does it fill?
A full 3D affine transform is a poor fit for UIs and often overkill for 2D uses.
Transform
and it's propagation system is a major bottleneck inPostUpdate
, with a large number of potentially separable systems dependent on them.What solution would you like?
Split out
Transform2D
andRectTransform
fromTransform
, explicitly for their respective use cases.Pros
Transform
andGlobalTransform
.GlobalTransform
equivalent, relying on the UI layouting algorithm instead.Cons
PostUpdate
is now more involved.What alternative(s) have you considered?
Leave it as is for now.