Skip to content

Requirements & Optimisation

YvetteW edited this page May 16, 2018 · 62 revisions

Requirements

Supported Unity Version

  • The only version of Unity we currently support is 2017.2.0p4

Single Scene

  • Experiences should consist of a single Unity scene.
  • Only this scene will be included in the .limapp package and attempting to load other scenes from your Unity project will not succeed.

Minimum FPS

  • Experiences must maintain a framerate of at least 60fps on all supported devices, in line with requirements for the GearVR and Google Daydream platforms.

Ending Your Experience

  • To end your Experience
    1. Add using Liminal.SDK.Core;
    2. Then call ExperienceApp.End(); to end your Experience

Ensure these Settings are Applied

Single Pass Rendering

Edit > Project Settings > Player > Android > XR Settings > Stereo Rendering Method = Single Pass (Preview)

Avoid / Do Not Use

Programming Language

  • Liminal SDK is intended for use with C# scripts. Scripts written in UnityScript/JavaScript and Boo are not supported.

Global State

  • Do not change the global state of the project within your scripts.

Timescale

  • Do not change the timeScale. It should always be set to the default value of 1.

Unsupported Plugins

  • Plugins can be used as normal, but imported scripts must comply with these requirements in the same way as your own scripts.
  • When choosing whether to use a plugin, review its code as well as its terms and conditions carefully.

Licensing

  • We discourage using licensed plugins.

Known Incompatibility

  • Curvy
  • Postprocessing

[Serializable] Classes

  • These classes need to have a constructor without an argument if they use constructors.
  • Data may be lost during instantiation if the object is not in the scene.
  • [Serializable] classes that reference a scriptable object need the scriptable object to have the [PreferBinarySerialization] attribute

Static Variables

  • These will be initialised the first time the experience is loaded, but not necessarily before each time it is run.
  • If the Experience depends on static variables, ensure these are correctly initialized.
    • For example, a listener for the ExperienceApp.Initialize event

DontDestroyOnLoad

  • Do not call [DontDestroyOnLoad()](https://docs.unity3d.com/ScriptReference/Object.DontDestroyOnLoad.html) anywhere within your scripts.

Ownership Rights

You must own the rights to all the content within your submitted Experience or they must comply with the conditions of the original content owner.

Some things to consider. Are you using…

  • Copyrighted music
  • Logos or direct references to brands
  • 3D models and assets must comply with re-use for commercial purpose

Recommendations

Ending Your Experience

We highly encourage all users to have some form of screen transition for the end of their Experience.

Liminal ScreenFader

  • Liminal supplies a screen fader with the Liminal SDK. This can be easily called from within your scripts.
  • To fade out at the end of your Experience:
    1. Add using Liminal.Core.Fader;

    2. Then call-

      var fader = ScreenFader.Instance;

      fader.FadeTo(Color fadeColor, float fadeDuration);

Optimization

Everything You Need to Know to Develop for Oculus Go by Oculus (20th April 2018)

Squeezing Performance out of your Unity Gear VR Game by Oculus (12th May 2015))

Unity: Android Optimisation Guide by IronEqual (18th August 2017)

Clone this wiki locally