public static void SaveArItem(Transform arItem)
    {
        // Convert the AR item's Unity data into serializable format that can be saved

        ArItemData arItemData = new ArItemData();

        arItemData.ItemType = (int)arItem.GetComponent <ArItem>().ItemType;

        QuaternionSerializable newQuat = new QuaternionSerializable();

        newQuat.Fill(arItem.rotation);
        arItemData.Orientation = newQuat;

        var             rawGpsPos = XRSessionManager.GetSession().LocalPositionToGps(arItem.position);
        GpsSerializable gpsPos    = new GpsSerializable();

        gpsPos.Height     = rawGpsPos.Height;
        gpsPos.Latitude   = rawGpsPos.Latitude;
        gpsPos.Longitude  = rawGpsPos.Longitude;
        arItemData.GpsPos = gpsPos;

        // Create (almost) unique ID for this AR item
        string itemId = arItem.GetInstanceID().ToString() + "." + rawGpsPos.Latitude.ToString() + "." + rawGpsPos.Longitude.ToString();

        arItemData.Id = itemId;
        arItem.GetComponent <ArItem> ().Id = itemId;

        Debug.Log("Added AR item to save data");
        ArItemList.Add(arItemData);
        Save();
    }
    public static void LoadGameData()
    {
        for (int i = 0; i < ArItemList.Count; i++)
        {
            // Convert serialized data back into usaarItemDatable data objects

            ArItemData arItemData = ArItemList [i];

            Quaternion quat = arItemData.Orientation.GetQuaternion;

            GpsSerializable gpsPos = arItemData.GpsPos;
            var             gps    = new GpsPosition
            {
                Latitude  = gpsPos.Latitude,
                Longitude = gpsPos.Longitude,
                Height    = gpsPos.Height
            };
            Vector3 pos = XRSessionManager.GetSession().GpsToLocalPosition(gps);


//			GameObject spawnItem;
//			if (arItemData.ItemType == (int)ArItemType.tier1)
//			{
//				spawnItem = GameManager.Instance.Tier1ItemPrefab;
//			}
//			else if (arItemData.ItemType == (int)ArItemType.tier2)
//			{
//				spawnItem = GameManager.Instance.Tier2ItemPrefab;
//			}
//			else
//			{
//				spawnItem = GameManager.Instance.Tier3ItemPrefab;
//			}
//

            //PlayerMapTouchController.Instance.SpawnSavedFlag (pos, quat, arItemData.Id);

//			GameObject arItem = Instantiate (PlayerMapTouchController.Instance.FlagPrefab, pos, quat);
//			arItem.GetComponent<ArItem> ().Id = arItemData.Id;
        }
    }
    public static void LoadGameData()
    {
        for (int i = 0; i < ArItemList.Count; i++)
        {
            // Convert serialized data back into usable data objects

            ArItemData arItemData = ArItemList [i];

            Quaternion quat = arItemData.Orientation.GetQuaternion;

            GpsSerializable gpsPos = arItemData.GpsPos;
            var             gps    = new GpsPosition
            {
                Latitude  = gpsPos.Latitude,
                Longitude = gpsPos.Longitude,
                Height    = gpsPos.Height
            };
            Vector3 pos = XRSessionManager.GetSession().GpsToLocalPosition(gps);

            GameObject spawnItem;
            if (arItemData.ItemType == (int)ArItemType.level1)
            {
                spawnItem = GameManager.Instance.Level1ItemPrefab;
            }
            else if (arItemData.ItemType == (int)ArItemType.level2)
            {
                spawnItem = GameManager.Instance.Level2ItemPrefab;
            }
            else
            {
                spawnItem = GameManager.Instance.Level3ItemPrefab;
            }

            GameObject arItem = Instantiate(spawnItem, pos, quat);
            arItem.GetComponent <ArItem> ().Id = arItemData.Id;
        }
    }