MultiSet
Developer Portal
  • MultiSet Developer Docs
  • Getting Started
    • Changelog
    • VPS SDK : Unity Guide
    • FAQ
  • Basics
    • Maps
      • Mapping Instruction
      • Mapping Planning
      • Mapping Equipment
    • MapSet : Multiple Maps
      • Merging Maps without Overlap
        • Extend a MapSet
      • Merging Maps with Overlap
      • Adjust Map Transformation
    • App Localization
    • Credentials
    • Analytics and Usage
    • Downloads
    • REST API Docs
    • WebXR Integration
    • Third Party Scans
      • Matterport
    • MapFoundry
    • Georeferencing Maps
  • Unity-SDK
    • MultiSet package import
      • Universal 3D (Core) support
    • Sample Scenes
    • On-Cloud Localization
      • Individual Map
      • MapSet (Multiple maps)
        • Hint MapCodes
      • Pose Prior : HintPosition
    • Occlusion
    • NavMesh Navigation
  • Support
  • Native Support
    • iOS Native
Powered by GitBook
On this page

Was this helpful?

  1. Unity-SDK
  2. On-Cloud Localization

Individual Map

Localization explanation in individual Map

PreviousOn-Cloud LocalizationNextMapSet (Multiple maps)

Last updated 5 months ago

Was this helpful?

To localize a user on a specific Map, provide the Map Code where the user is located. Retrieve the Map Code by logging into the Developer Portal or using our REST API.

IN the Map Localization Manager in Unity SDK, select Localization Type as "Map" and then past your Map Code

Update Map Code in Runtime

To dynamically change the mapOrMapsetId at runtime in our existing script, you can create a UI input field or a method that updates the mapOrMapsetId in the MapLocalizationManager. Below is an example script showcasing how to do this via a simple button press or direct method call.

using MultiSet;
using UnityEngine;
using UnityEngine.UI;

public class MapCodeUpdater : MonoBehaviour
{
    // Reference to the Map Localization Manager
    private MapLocalizationManager mapLocalizationManager;

    // Input field to get the new Map ID from the user
    [SerializeField]
    private InputField mapCodeInputField;

    void Start()
    {
        // Find the Map Localization Manager component in the scene
        mapLocalizationManager = FindObjectOfType<MapLocalizationManager>();

        if (mapLocalizationManager == null)
        {
            Debug.LogError("MapLocalizationManager not found! Please ensure it is added to the scene.");
        }

        if (mapCodeInputField == null)
        {
            Debug.LogError("InputField reference is missing! Please assign it in the inspector.");
        }
        
        mapLocalizationManager.localizationType = LocalizationType.Map;
    }

    // Method to update the Map ID
    public void UpdateMapId()
    {
        if (mapLocalizationManager != null && mapCodeInputField != null)
        {
            string newMapCode = mapCodeInputField.text;

            if (!string.IsNullOrWhiteSpace(newMapCode))
            {
                mapLocalizationManager.mapOrMapsetCode = newMapCode;
                Debug.Log($"Map Code updated to: {newMapCode}");
            }
            else
            {
                Debug.LogWarning("Map Code cannot be empty! Please enter a valid Code.");
            }
        }
    }
}