Mobile and VR Guide¶
This section covers NiloToon's mobile/VR optimization, the NiloToon(Lite) shader, XR settings, and build procedures.
NiloToon(Lite) - For Mobile/VR¶
The full version of NiloToonURP contains many features for PC and console. Even if those features are not used on mobile/VR, they add significant rendering overhead.
If the full version of NiloToonURP is too slow for your mobile/VR game project and you are willing to use a shader developed specifically for mobile and VR, try the NiloToon(Lite) shader.
Provided separately to license holders.
Performance Comparison¶
You can expect 3-5x GPU speed improvement compared to the full version of NiloToonURP.
| Shader | GPU Cost Example |
|---|---|
| NiloToonURP (full version) | 10ms |
| NiloToon(Lite) | 2-3ms |
Scales much better with many characters, objects, and high-resolution rendering.
Advantages¶
- An extremely fast shader built on past experience in the mobile game industry. Designed to run well on weak-GPU phones and Quest 2
- Simpler to use than the full version of NiloToonURP (far fewer features and options)
- Can be used on all renderers, not just characters
Disadvantages¶
- Work in progress and in early development stage. Shader names or property names may change in future updates
- Very low priority in the development plan. Updates are expected to be very slow
- Far fewer features than the full version of NiloToon
- No documentation - only Help Boxes and Tooltips within the Material Inspector
- Contains only 1 shader and 1 Renderer Feature. No auto-install or auto-setup buttons
- Not affected by scripts, Renderer Features, or Volumes from NiloToon (full version) - runs as a completely standalone shader outside the full NiloToon system to achieve the best performance
Avoiding LWGUI Duplicates
If your project already has NiloToonURP imported, do not import the LWGUI folder inside the NiloToonURP(Lite) folder when importing NiloToon(Lite). Only one LWGUI is needed.
Minimal Default Settings
NiloToon(Lite) uses minimal default settings (most feature defaults = off). This is because the sole goal is the fastest GPU performance on mobile/VR. Only enable features you truly need in the material. The fewer feature groups you enable, the better the GPU performance.
Material Inspector¶

Rendering Example¶

Classic Outline Setup¶
To create a Classic Outline with NiloToon(Lite), you must manually add the NiloToonLiteRendererFeature. This is not the same Renderer Feature as the full version of NiloToon.

Optimal Performance
If you are using only the Lite shader, it is recommended to disable the full version NiloToonURP Renderer Feature to reduce workload.
Running PCVR in Play Mode¶
To run PCVR in Play Mode from NiloToon's demo project:
-
Find Assets/XR/XRGeneralSettingsPerBuildTarget in the Project, click Standalone Settings, and enable Init Manager On Start.

-
Enable OpenXR in Project Settings under XR Plug-in Management.

-
Ensure your VR device (e.g., Quest 2's AirLink/SteamVR/VirtualDesktop) is ready and connected to your PC.
- Open a NiloToon scene and click Play in the Editor. You should be able to control camera movement with your headset in the VR device.
- You can still change the scene in Play Mode using your mouse (there is no control from VR controllers).
Turning Off VR
To turn off VR, revert all the above changes:
- Disable Init Manager On Start
- Or disable OpenXR in XR Plug-in Management
Features Disabled in XR¶
Some features are disabled in XR as they may be inappropriate:
- NiloToon Anime PostProcess
- NiloToon Motion Blur
- Perspective Removal
Building the Demo Project (APK/iOS)¶
-
Switch the platform to Android/iOS.

-
(Optional) Exclude NiloToonEnviJPStreetScene from Build Settings. This step can reduce build time and runtime shader memory usage.

-
Connect your Android/iOS phone to your computer via USB, then click Build and Run (or Ctrl+B). Ensure USB Debugging is enabled on your Android device.
-
Results:
- Android: After the build completes, the .apk will run on your Android phone
- iOS: Continue the build in the XCode window
Building the Demo Project (Web)¶

-
Switch the platform to Web.
-
Delete the following folders in the Project window:
- Assets/MMD4Mecanim
- Assets/SteamVR
- Assets/SteamVR_Input
- Assets/ThirdParty(GitHub)/uLipSync
-
Click Build and Run (or Ctrl+B).
-
After the build completes, verify that the demo runs in your web browser.
Loading Issues
If the browser is stuck at loading (0%) after a successful build, close the web page, exclude NiloToonEnviJPStreetScene from Build Settings, and build again.
Note
The VideoPlayer in the Dance! scene (NiloToonDancingDemo) will not work in Web builds. This is expected behavior.
GLES 2.0 Not Supported¶
NiloToon and URP shaders use the SRP Batcher, so the recommended OpenGLES version is OpenGLES 3.1 or above.
| OpenGLES Version | Support Status |
|---|---|
| OpenGLES 3.1+ | Recommended |
| OpenGLES 3.0 | Supported (e.g., very old Android devices / WebGL 2.0) |
| OpenGLES 2.0 | No longer supported by NiloToon or Unity2022 LTS |