This repository was archived by the owner on Jan 18, 2022. It is now read-only.
GDK for Unity Alpha Release 0.2.4
This release contains significant bandwidth savings in the Transform Synchronization feature module and significant changes to how Workers are created in the GDK.
Keep giving us your feedback and/or suggestions! Check out our Discord, our forums, or here in the Github issues!
For more information, have a browse through our detailed release notes below or check out our Upgrade Guide! 🎉
Breaking Changes
- The constructor for the
ForwardingDispatchernow accepts aUnityEngine.LogTypeinstead ofImprobable.Worker.CInterop.LogLevelas its parameter. #987 - The schema for the Transform Synchronization feature module has been optimised to reduce bandwidth. If you use this module, please make use of the updated helper methods and regenerate your snapshot. #990
- The
LocationandVelocityschema types have been replaced by theFixedPointVector3type.- The location and velocity fields are now
Q21.10fixed point values.
- The location and velocity fields are now
- The
Quaternionschema type has been replaced by theCompressedQuaterniontype.- Rotation is now compressed from 4 floats to a single uint32.
- The
- The worker abstraction & connectors have been changed significantly. See the Upgrade guide for more details on how to upgrade. #981
- The
DefaultWorkerConnectorandDefaultMobileWorkerConnectorclasses have been removed. - The
WorkerConnectorhas had the following abstract methods removed:ConnectionService GetConnectionService()ConnectionParameters GetConnectionParameters(string workerType, ConnectionService service)LocatorConfig GetLocatorConfig()AlphaLocatorConfig GetAlphaLocatorConfig(string workerType)ReceptionistConfig GetReceptionistConfig(string workerType)
- The
WorkerConnectorhas had the following virtual methods removed:string GetPlayerId()string GetDisplayName()string SelectDeploymentName(DeploymentList deployments)string GetDevAuthToken()string SelectLoginToken(List<LoginTokenDetails> loginTokens)string GetDevelopmentPlayerIdentityToken(string authToken, string playerId, string displayName)List<LoginTokenDetails> GetDevelopmentLoginTokens(string workerType, string playerIdentityToken)
- The
WorkerConnectorhas also had the following changes:- The
public Worker Worker;field is now thepublic WorkerInWorld Worker;field. - The
public async Task Connect(string workerType, ILogDispatcher logger)method is nowprotected async Task Connect(IConnectionHandlerBuilder builder, ILogDispatcher logger).
- The
- The
Workerclass has had the following changes:- The
public Connection Connection { get; private set; }property has been removed. - The
public World World { get; private set; }property has been moved to theWorkerInWorldclass. - The
public static async Task<Worker> CreateWorkerAsync(ReceptionistConfig parameters, ConnectionParameters connectionParameters, ILogDispatcher logger, Vector3 origin)method has been removed. - The
public static async Task<Worker> CreateWorkerAsync(LocatorConfig parameters, ConnectionParameters connectionParameters, ILogDispatcher logger, Vector3 origin)method has been removed. - The
public static async Task<Worker> CreateWorkerAsync(AlphaLocatorConfig parameters, ConnectionParameters connectionParameters, ILogDispatcher logger, Vector3 origin)method has been removed.
- The
- The
ReceptionistConfig,LocatorConfig, andAlphaLocatorConfigstructs have been removed. - The
WorkerSystemno longer has apublic readonly Connection Connection;field
- The
- The
CommandLineUtilitystatic class has been replaced with aCommandLineArgsstateful class. #981 - The
ILogDispatcherinterface now has apublic Worker Worker { get; set; }property instead of apublic Connection Connection { get; set; }property. This of course, propagates down to all implementations of theILogDispatcherinterface. #981
Added
- Added a mobile launcher window containing all the settings and functionality to allow you to launch your apps for iOS and Android. To open it, in the Unity Editor, select SpatialOS > Mobile Launcher.
- Added a
IEnumerable<T> FilterOption<T>(this IEnumerable<Option<T>> enumerable)LINQ extension. #981 - Added a
public readonly string WorkerId;field to theWorkerSystemclass. #981 - Added a
IConnectionFlowinterface which describes how a connection can be created. #981- Added a
ReceptionistFlow,LocatorFlow, andAlphaLocatorFlowwhich implementIConnectionFlow.
- Added a
- Added a
IConnectionFlowInitializer<TConnectionFlow>interface which describes how the parameters for a particular connection flow are initialized. #981- Added a
CommandLineConnectionFlowInitializerwhich implementsIConnectionFlowInitializer<ReceptionistFlow>,IConnectionFlowInitializer<LocatorFlow>, andIConnectionFlowInitializer<AlphaLocatorFlow>. - Added a
MobileConnectionFlowInitializerwhich implementsIConnectionFlowInitializer<ReceptionistFlow>andIConnectionFlowInitializer<AlphaLocatorFlow>.
- Added a
- Added a
IConnectionParameterInitializerwhich describes how the parameters for a worker connector are initialized. #981- Added a
CommandLineConnectionParameterInitializerwhich implementsIConnectionParameterInitializer. - Added a
MobileConnectionParametersInitializerwhich implementsIConnectionParameterInitializer.
- Added a
- The
IConnectionHandlerinterface now has the following methods: #981string GetWorkerId();List<string> GetWorkerAttributes();
- Added a
WorkerInWorldclass which inherits fromWorkerand adds ECS specific implementation details to theWorker. #981
Changed
- Moved the configuration of the Local Runtime IP from the GDK tools configuration window to the mobile launcher window.
Fixed
- Fixed a bug where invalid characters in your PATH elements would throw exceptions and break code generation. #986
- Fixed a regression in the
SetKinematicFromAuthoritySystemthat failed to toggle a rigidbody's kinematic state onTransformInternalauthority changes. #988 - Fixed a regression in the code generator where spaces in your path would cause code generation failures. #991