Links

Release Notes

Read about new features, important changes and fixes for version 0.10

v0.10.9

Fixed

  • macOS builds uploaded to coherence Cloud now keep the Application Bundle (.app) structure intact.
  • When a simulator fails to build, the scripting define symbol COHERENCE_SIMULATOR is properly removed.
  • Faster assembly reloads, since coherence no longer tries to load your project Prefabs (was done to inform about possible issues or misconfigurations).
  • WebGL won't crash when failing to create a WebSocket.

v0.10.8

New features and functionality

  • TCP fallback when UDP connections fail or are blocked. Useful in heavily firewalled/restricted environments.
  • CoherenceSync: ability to trigger authority transfers from within the inspector while in Play Mode.
  • CoherenceSync: when adding CoherenceSync to a Prefab Instance, it's possible to apply CoherenceSync to the original Prefab instead of creating a new one.

Changes

  • Sample UI: layout.
  • Sample UI: watermark shows current Room/World ID, region and schema ID.

Fixed

  • Replication issues when commands or inputs are being sent right after instantiation.
  • CoherenceSync: moving to Assets/Resources won't fail if the folder doesn't exist yet, and it's possible to issue from within a Prefab Stage.
  • CoherenceSync: adding a CoherenceSync inside a Prefab Stage resolves 'Load via' properly now.
  • Sample UI: highly reduced GC allocations in watermark.
  • Sample UI: refreshing was performed multiple times. Now, it also takes less time to get the state updated.

v0.10.7

New features and functionality

  • New PlayResolver.RemoveRoom API.
  • Sample UI: detect available local Replication Server.
  • CoherencePlayerName component to ease networking the player name set on the Sample UI.

Changes

  • Bake automatically defaults to false.
  • Sample UI: improved layout and better state management.
  • CoherenceSync: tooltips have been rewritten and improved.
  • PlayResolver.FetchWorlds takes optional region and simulator slug as arguments.
  • Connection Dialog defaults to rooms.
  • Baking automatically on building a Unity Player no longer updates Prefabs.

Fixed

  • Texture-loading related issues (Editor).
  • Packets received from incorrect endpoints are ignored.
  • Build uploading on macOS.
  • Hub: improvements to the Overview section.
  • Hub: Multi-Room Simulators Wizard no longer reopens.
  • coherence now waits for the AssetDatabase to be ready before performing changes to Prefabs.
  • CoherenceSync: No Duplicates resolves uniqueness properly now.
  • Uploading schemas from CI using COHERENCE_PORTAL_TOKEN.
  • CoherenceSync: with rigidbody, parented under an object without CoherenceSync, now correctly syncs its position.

v0.10

The first thing you'll notice is that our Documentation has gotten a thorough overhaul to its structure. We hope you find the new layout of topics more usable and logical.

New features and functionality

  • Play.IsLoggedIn to wait before interacting further with the Play API.
  • Authority-side sample interpolation that removes jitter for bindings that are sampled at high frequencies.
  • CoherenceSync: now fully configurable in Prefab variants. Prefab overrides can be visualized both in the CoherenceSync inspector and the Configure window.
  • PlayResolver: Option to create or join existing room with matching tags.
  • DescriptorProvider custom data object added for extended binding support.
  • Play.IsLoggedIn now waits before interacting further with the Play API.
  • Authority-side sample interpolation that removes jitter for bindings that are sampled at high frequencies.
  • CoherenceSync: a new 'Preserve Children' option to prevent connected entities (CoherenceSyncs in hierarchy) from being destroyed if the parent entity is destroyed.
  • CoherenceSync: [Sync] and [Command] attributes now allow you to specify the old name of the member to migrate it in place (example: [Sync("myOldVar")] public float myVar;).
  • CoherenceMonoBridge: onLiveQuerySynced exposed in the inspector (OnLiveQuerySynced deprecated).
  • Build sharing: improved build path validation.
  • Baking: now informs users about the current limitation of 32 schema components.
  • Source Generator: improved reports so that it's clear when there's a failure.
  • PlayResolver: Option to create or join existing room with matching tags.
  • DescriptorProvider custom data object for extended binding support.

Changes

  • CoherenceSync: polymorphic bindings using serialized references. Upgrading from older coherence versions requires migration (done automatically, can trigger manually via menu item 'coherence > Reimport coherence Assets').
  • CoherenceSync: configurable rigidbody component action. You can decide when isKinematic should be (un)set.
  • CoherenceSync: authority transfer UI label changed from 'No' to 'Disabled'.
  • CoherenceHub: last tab opened is now persistent when closing and opening the window again.

Fixed

  • Networked Prefabs are now instantiated with their original rotation if the rotation is not synced.
  • Truncated floating point precision in the 'Optimize' window.
  • Losing latest changes when transferring authority.
  • Overshooting and overflowing of integers while interpolating.
  • WebGL Client automatically disconnecting after Replication Server shutdown.
  • Recycling of EntityIDs caused by a double delete of an ID when an Entity is destroyed because of a parent moving out of the query.
  • Negative latency calculations during CPU spikes.
  • Fixed ConnectionSettings.PingOnConnect causing a timeout when connecting.
  • Editor getting stuck in an infinite loop when trying to import packages that reference missing types.
  • CoherenceNode script is now executed before CoherenceSync to mitigate parenting validation warnings.
  • Entities that exceed the Room's max Entity count are destroyed and a warning is logged.
  • Cloning GameObject instances with baked bindings using Instantiate would result in binding errors due to missing GUIDs (globally unique identifiers).
  • Warnings spammed when exiting Play Mode in Unity Editor.
  • Baking: process running longer than expected.
  • Baking: gather bindings from inactive GameObjects in hierarchy.
  • Baking: fixed NullReferenceException by skipping missing scripts.
  • Hub: don't show synchronous fetch organization progress bar.
  • Hub: improved scene setup instructions.
  • Hub: improved Multi-Room Simulators setup.
  • More coherence components implement a custom editor now, showing the logo and a brief description.
  • Source Generator: allow on 2020.3.
  • Source Generator: first time import failing due to directories not yet existing.
  • CoherenceSync: binding the same method as a command multiple times in the same Prefab is now supported.
  • CoherenceSync: fixed issue with parenting and interpolation which would result in a few frames of the connected Entity being in the wrong place.
  • CoherenceSync: use the method SendCommandToChildren to send a command to every bound component in the hierarchy.
  • CoherenceSync: new overload for the SendCommand method that accepts an Action, you can use it to send a command to a specific Component instance, if a method is bound to more than one component in the hierarchy.
  • CoherenceSync: disabled prediction controls on reflection (non-baked) mode.
  • CoherenceSync: set default interpolation.
  • CoherenceSync: fixed error on cancelling interpolation asset creation.
  • CoherenceSync: opening the inspector should not load additional assets (noticeable speedups on bigger projects).
  • CoherenceSync: binding to generic members is no longer allowed.
  • CoherenceSync: collapsed 'Custom Events' section by default.
  • CoherenceSync: 'Steal' authority transfer type on persistent Entities is no longer forced.
  • CoherenceNode: executed before CoherenceSync to mitigate parenting validation warnings.
  • Sample UI: don't auto-generate EventSystem, but inform when it's missing.
  • Sample UI: fixed default room name.
  • Sample UI: fixed Refresh button throttling (too many requests).
  • PlayClient: fixed missing Client version header.
  • Analytics: Exception thrown due to threading error.
  • PlayResolver: Cached rooms not filtered by tags.

Removals

  • CoherenceMonoBridge: OnShutdown event.