Skip to content
This repository has been archived by the owner on Jan 18, 2022. It is now read-only.

GDK for Unity Alpha Release 0.3.8

Compare
Choose a tag to compare
@gdk-for-unity-bot gdk-for-unity-bot released this 20 Jul 13:16
a77681b

In this jam-packed release, we've changed how the GameObject Creation module maps entities to prefabs by introducing asset-based entity representation. This means that you no longer need to edit code to define the mapping between an entity type and the prefab used to represent it.

👈 Click to see an example Entity Representation Mapping!

entity_representation_mapping

We've also officially removed Windows x86 support.

The Worker Inspector now supports viewing map<k,v> fields, and a context menu (right-click) option to hide empty collections. This may be useful when browsing complex components such as Interest or EntityAcl.

You can now set the UseExternalIp connection parameter using the +useExternalIp command line argument.

The GDK Tools Configuration has been moved from its own window into a Spatial OS section under the Unity Project Settings. In addition, the Build Configuration UI now allows you to set the Scripting Backend and Allow Debug options.

Alongside the new features above, we've fixed a bug with CommandSenders not being re-validated and solved a minor indentation issue with generated code.

There are a several breaking changes in this release, so please make sure to read the upgrade guide.

Keep giving us your feedback and/or suggestions! Check out our Discord, our forums, or here in the Github issues!

See the full release notes below! 👇


Breaking Changes

  • All generated C# enums will now start from 0, being shifted to schema values on serialization and shifted back to C# values on deserialization. #1412
    • A warning will be generated when enums defined in schema do not start from 0.
  • Removed Windows x86 build support. #1421
  • GameObject Creation feature module now links entity types with prefabs through EntityRepresentationMapping assets. #1393
    • See the upgrade guide for detailed upgrade instructions for this breaking change.
    • IEntityGameObjectCreator.PopulateEntityTypeExpectations now only needs to specify what SpatialOS components it needs for spawning an entity, such as Position.
    • GameObjectCreationHelper.EnableStandardGameObjectCreation now requires a non-null EntityRepresentationMapping to be passed in.

Added

  • Added map<k,v> support to the Worker Inspector window. #1403
  • Added Open inspector V2 menu item that opens the new inspector in the browser. #1407
  • Added the option to set UseExternalIp using the command line argument +useExternalIp with the CommandLineConnectionParameterInitializer. #1409
  • Added support for flag arguments in CommandLineParser. #1409
  • Added Scripting Backend option dropdown to the Build Configuration UI. #1411
  • Added Allow Debug toggle to the Build Configuration UI. #1413
    • Enabling the option allows .NET debuggers (Rider/Visual Studio) to use breakpoints while in the Unity Player.
  • Added Authority type field to IComponentMetaclass. #1393
  • Added info button on the component details in the Worker Inspector Window that prints ComponentID and schema filepath to log #1423
  • Added an option to hide empty collections in worker inspector through a context menu (right-click). #1417

Changed

  • Moved Gdk Tools Configuration to the Unity "Project Settings" window under Spatial OS. #1408

Fixed

  • Fixed a bug in the Worker Inspector where component foldouts were being rendered too often, causing poor performance when the entity had many components or very complex components. #1403
  • Fixed minor indentation issue in generated code caused by newline formatting. #1424
  • Fixed a bug where CommandSender objects would not be made valid again after being re-injected. #1429

Internal

  • Added com.unity.test-framework and com.unity.test-framework.performance as dependencies to the io.improbable.gdk.testutils package. #1416
    • In addition, both packages have been removed from the playground manifest.json.