When I load another scene and come back to the original scene, the POIs state is not preserved, ie. their visited status is cleared. How can I preserve POIs between scene changes?
Just tick the DontDestroyOnLoad property of the POIs you want their state to be preserved between scene changes. Enabling this option will have the following effects:
The POI gameobject won’t be removed when the other scene is loaded.
The POI won’t be visible in the new scene though, but it will be activated again (visible in the compass bar) when you load the original scene back.
The compass shows too small on mobile devices. How to scale it up?
The compass asset is an Unity UI element so it respects the Canvas Scaler options. Try using “Constant Physical Size” or “Scale With Screen Size” to get the appropriate scale on any device.

How to optimize performance?
Compass Navigator Pro uses several techniques to improve performance. However, some settings, particularly of the mini-map feature, can affect performance if not tuned correctly. Follow these tips in order until you get the desired performance:
– Select the Compass Navigator Pro gameobject, and in the inspector, under the Mini-Map / World Capture & Rendering section, make sure the Layer Mask includes only the objects that you want to display in the mini-map. Use a reasonable Resolution value and disable “Render Shadows” if not needed for the minimap. Also, and most important, in Snapshot Frequence, set it to other value than “Continuous” (continuous means the camera captures every frame which can be expensive depending on your performance goals). You can set it to “Time Interval” or “Distance Traveled” which refers to the distance moved by the player camera, so for instance it captures the world every 50 meters.
– The mini-map feature uses a zenithal camera which captures snapshots. In URP/HDRP, this camera can execute some render features configured for the pipeline which would be undesired. To avoid this, expand the Compass Navigator Pro gameobject -> MiniMap Root child and select the TopDownCamera gameobject, then in the inspector set the Volume Mask setting to Nothing (alternatively and in URP you can also create a new Universal Renderer asset and assign it to the URP asset, then set the TopDownCamera to use this second Universal Renderer which won’t have any of the render features from the default renderer).
Can Compass work with multi-level environments or interior buildings?
Yes. Use the “Height vs Follow” setting to specify the altitude of the zenithal camera with respect to the character. Set this value to 1 or 2 meters so the camera capturing the map is placed above the character but just below the ceiling.
When I add the Compass Navigator Pro prefab to the scene, it stops being a prefab.
This is by design. The asset needs to create and destroy children gameobjects which is not allowed while linked to a prefab, so it unpacks automatically when added to the scene. You can customize it in the scene and then create a prefab from it by dragging & drop the gameobject into your project folders. And also you can use scripting to instantiate the prefab and customize it.
How to set the Player arrow to follow the main character in Play Mode in a multiplayer project?
Add the following script to your character prefab:
using UnityEngine;
public class CompassSetup : MonoBehaviour
{
void Start()
{
CompassNavigatorPro.CompassPro.instance.follow = transform;
}
}
How can I add Compass Navigator Pro to my scene at runtime?
You can instantiate the CompassNavigatorPro prefab or call thes static method CompassPro.Create() to add the compass to the scene.
Scan effect doesn't render correctly, I can't see the grid lines and the screen just gets darker.
If you’re using URP, disable SSAO in the render features or set SSAO source to “Depth” instead of “Depth Normals”. Make sure Depth Texture option is enabled in the URP asset.
How to show the full terrain in the minimap?
In order to show the full map in the mini-map, just set the zoom level to 1 (assuming the mini-map mode is set to orthographic). This will show the complete map based on the miniMapWorldCenter and miniMapWorldSize properties.
Is there a way to click on the minimap and move the camera there?
Use the OnMiniMapClick event which receives the world position when clicking on the mini-map. The LevelManager.cs script contains a sample code. In this case, when you click on the mini-map in the demo scene, it creates a POI at that position. In the same way you could just move the character or camera there.
I have a question which is not covered in the guide...
Please use the
Support Forum and post your question there. Our team will get back to you shortly.