Summarizing the discussion here into a single place just to save everyone a little time
Updating
-
Make sure you’re using Unity 2019.3 0b11+
-
Update entities package to 0.2 via package manager
-
Update collections package to 0.2 via package manager
For some reason Unity complains about invalid dependencies and would not update it -
Close unity
-
Delete Library folder
This is not required to get your project compiling but burst seems to be having issues working again until this step is done -
Launch unity, hopefully everything works
Common Issues
1. ICustomBootStrap changed
Only actual compile error I actually got as the signature of the interface has changed.
Was
public interface ICustomBootstrap
{
// returns the systems which should be handled by the default bootstrap process
// if null is returned the default world will not be created at all, empty list creates default world and entrypoints
List<Type> Initialize(List<Type> systems);
}
Now
/// <summary>
/// When entering playmode or the game starts in the Player.
/// A default world is created, sometimes you need multiple worlds to be setup when the game starts.
/// This lets you override the bootstrap of game code world creation.
/// </summary>
public interface ICustomBootstrap
{
// Returns true if the bootstrap has performed initialization.
// Returns false if default world initialization should be performed.
bool Initialize(string defaultWorldName);
}
2. Convert and Inject is broken in root game objects
The root object will always be destroyed. While they seem to want to use StopConvertToEntity this doesn’t really have the same behaviour and this appears like a bug to me.
Workaround: Put any objects that need injection under an empty parent with a convert to entity script.
3. World.Active deprecated
Use World.DefaultGameObjectInjectionWorld instead (find and replace project).
Note: if you’re using this in a system you’re making a mistake.
4. Initialization order is different now.
Default world is now created after a custom bootstrap is created (if the bootstrap allows it). This means you can not use World.DefaultGameObjectInjectionWorld (Active replacement) in a custom boostrap and instead you have to set it up yourself.
5. Light system removed
Bit annoying as the replacement hasn’t been provided yet.
Maybe just copy the old system into your project until an alternate is provided in the future.
If there’s anything else, I’ll keep this thread updated.