Search Unity

  1. Welcome to the Unity Forums! Please take the time to read our Code of Conduct to familiarize yourself with the forum rules and how to post constructively.
  2. Dismiss Notice

Question Can someone explain the need for Bakers?

Discussion in 'Entity Component System' started by vectorized-runner, Dec 1, 2022.

  1. vectorized-runner

    vectorized-runner

    Joined:
    Jan 22, 2018
    Posts:
    383
    Why do we need to have Bakers, Baking Systems, and the Monobehaviour authoring, while we only had one Authoring class before? Is it optimization or separation of concerns or something? Can you give me an example case where old authoring wasn't enough?
     
  2. tertle

    tertle

    Joined:
    Jan 25, 2011
    Posts:
    3,626
    Conversion systems existed in 0.51 and below and we had IConvertGameObjectToEntity instead of bakers

    Workflow wise the only thing that has really changed is they separated the Baker (logic) from the MonoBehaviour (data) and that really doesn't make a huge difference.

    (This obviously ignores the previous generate authoring component attribute)
     
    Last edited: Dec 2, 2022
  3. slims

    slims

    Joined:
    Dec 31, 2013
    Posts:
    86
    This little footnote is pretty critical though. Unless I'm missing something this is actually a huge change. My asset pipeline is entirely game object prefabs with authoring components (and some converters). Switching over to 1.0 will be a huge nightmare for me, and for any substantial game that was on .51 or lower. I'll have to recreate my whole pipeline basically, for hundreds of components and items that are part of my game.
     
  4. macoson

    macoson

    Joined:
    Oct 12, 2020
    Posts:
    4
    ECS is not production ready and it was labelled as Experimental, a lot of this API may still change,
     
  5. Bas-Smit

    Bas-Smit

    Joined:
    Dec 23, 2012
    Posts:
    272
    Unity touched on the reasoning here

    For some this change means lots of work reworking existing code, and if you want runtime conversion you will have to roll your own. It's unfortunate, but if you want to use 1.0 you'll have to bite the bullet