PROGRAMFILES%\TiltFive\SDK\UnityPlugin\
), then select and open TiltFive-Plugin.unitypackage
📝 Note: After importing the package in some versions of Unity, you may get an error in the console that says MonoScript is registered as both Editor and Runtime script!
and then be unable to edit the Tilt Five Manager 2 settings (instead of the settings, it will contain a the text "Multi-object editing not supported"). Restarting the Unity editor should resolve the issue.
There are numerous changes in 1.4.0 where the API is different from prior releases, however most 1.3.x projects should not have significant issues adopting 1.4.0
true
to display content at the scale intended.SetApplicationInfo()
and SetPlatformContext()
can now be found in SystemControl.cs.internal
instead of public
visibility; in the unlikely case your code was calling these functions directly, compilations will fail now.primary
and secondary
Wand enum values were deprecated in 1.3.0 and will now cause compile errors. They must be changed to right
or left
.The change most likely to affect developers’ projects is that SDK 1.3.0 introduced the new TiltFiveManager2
component, which replaces the previous TiltFiveManager
.
TiltFiveManager2
exposes the settings required for developers to add multiglasses support to their projects.TiltFiveManager2
should be used for all new projects in 1.3.0 and forward.TiltFiveManager
will continue to be supported for a limited time. It will be supported as usual in 1.3.X, then deprecated in 1.4.X, and then removed in a future version.TiltFiveManager2
. The old prefab is still there for compatibility, but it will be removed when TiltFiveManager
is removed in a future SDK version.After importing SDK 1.4.0 (step 6 above), the upgrade process can differ depending on the project implementation:
In the simplest case:
Tilt Five Prototype
prefab.TiltFiveManager
in-place using the "Upgrade to TiltFiveManager2" button.Advantage: faster to update the project
Disadvantage: postpones migrating to the new Tilt Five prefab, which will need to happen when the original
TiltFiveManager
is removed (planned for SDK past 1.4.X).
The basic steps would look like this:
TiltFiveManager
. If the project previously used SDK 1.2.X or earlier, this would be any T5-enabled scene.Tilt Five Prototype
. This GameObject will have a TiltFiveManager
component. Observe that as of SDK 1.3.0, the TiltFiveManager
now has an "Upgrade to TiltFiveManager2" button.TiltFiveManager2
component, copy the existing settings from the old TiltFiveManager
, and then disable the old TiltFiveManager
component.In a slightly more complicated (yet common) case:
Tilt Five Prototype
prefab.Tilt Five Prototype
prefab with the newer Tilt Five Prefab
. It's likely that the old prefab will be removed when we remove TiltFiveManager
so we recommend replacing the old prefab sometime before then.Advantage: moving to the new prefab earlier means less work when the old prefab is obsoleted
Disadvantage: more upfront effort, easier to make mistakes when going through a large number of scenes
The steps change in this scenario - a button to automatically swap in the new prefab would be difficult to implement since developers may have decorated their prefab instances with additional Components or child GameObjects.
TiltFiveManager
. If the project previously used SDK 1.2.x or earlier, this would be any T5-enabled scene.Tilt Five Prototype
prefab instance in the inspector.TiltFiveManager
in the old prefab to the TiltFiveManager2
in the new prefab. Most of these settings will be associated with Player 1, though the glasses settings for Mirror Mode and Tracking Failure Mode have become global settings.In either scenario, at this point, it's time to replace all references to TiltFiveManager
in the developers' scripts and replace them with references to TiltFiveManager2
.
Once the references are updated, any internal logic in those scripts relying on TiltFiveManager
's API will also need to be updated to use TiltFiveManger2
's API (e.g. querying the current content scale would change from myTiltFiveManager.scaleSettings.contentScaleRatio
to myTiltFiveManager2.playerOneSettings.scaleSettings.contentScaleRatio
). Most of the API changes will be as simple as adding playerOneSettings
in the middle of their existing calls. One notable exception would be Mirror Mode, which has moved from GlassesSettings to SpectatorSettings.
Any references in the scene to the old prefab’s other components/GameObjects, such as “Tilt Five Camera”, “Tilt Five Game Board”, etc should also be updated to point at the equivalent GameObjects in the new prefab.
Once all settings are copied, children moved, references fixed, and scripts updated, it should be safe to remove the old TiltFiveManager
or Tilt Five Prototype
prefab from all of the T5-enabled scenes, at which point the upgrade's finished.
TiltFiveManager
and select "Find References in Scene" to get a list of every component in the scene that needs to be updated.TiltFiveManager
is now configured internally).TiltFiveManager2
, under "Tracking".ScaleSettings
object has a boolean property called legacyInvertGameboardScale
to invert the scaling which defaults to true for compatibility. New content should set this to false and adjust scaling as needed, and when upgrading consider making these changes for your content. In SDK 1.4.X this legacy option will default to false and be considered obsolescent, and in some SDK version after 1.4.X it will disappear completely.TiltFiveManager2
. If a prefab is provided here, it will be instantiated as a child gameobject that follows the pose of each player. To make Action Maps work for players 2-4, simply add a PlayerInput
component to that provided prefab, and make sure there's a PlayerInputManager
somewhere in the scene hierarchy.XR Controller > Tilt Five Wand > Tilt Five Wand (RightHand) > One
or <WandDevice>;{LeftHand}/Two
).For some projects, it may make sense to add the Tilt Five Prefab to a custom prefab. Instances of that prefab could be added to the various scenes in a given project, rather than directly adding an instance of the Tilt Five Prefab. If there is ever a “TiltFiveManager3” at some point in the future (we hope to avoid this 😅), this configuration would let developers make a single update to their custom prefab, and the change would be reflected in all of their scenes.
We also recommend that single-player applications use TiltFiveManager2
as well - simply clicking the subtract (-) button in TiltFiveManager2
until only one player remains will effectively result in behavior equivalent to TiltFiveManager
.
Please reach out to us at devrel@tiltfive.com if you have any comments, suggestions, or questions.