Search Unity

Resolved AR Foudnation scrypt code errors

Discussion in 'AR' started by ProtiumDesign, Jul 3, 2021.

  1. ProtiumDesign

    ProtiumDesign

    Joined:
    Aug 3, 2019
    Posts:
    3
    Hi,

    I follow the tutorial at


    but when I type code from that tutorials I get errors:

    Code (CSharp):
    1.  
    2. using System.Collections;
    3. using System.Collections.Generic;
    4. using UnityEngine;
    5. using UnityEngine.XR;
    6. using UnityEngine.XR.ARFoundation;
    7.  
    8. [RequireComponent(typeof(ARTrackedImageManager))]
    9. public class ImageTracking : MonoBehaviour
    10. {
    11.  
    12.     [SerializeField]
    13.     private GameObject[] placablePrefabs;
    14.  
    15.     private Dictionary<string, GameObject> spawnedPrefabs = new Dictionary<string, GameObject>();
    16.     private ARTrackedImageManager trackedImageManager;
    17.  
    18.     private void Awake()
    19.     {
    20.         trackedImageManager = FindObjectOfType<ARTrackedImageManager>();
    21.  
    22.         foreach (GameObject prefab in placeablePrefabs)
    23.         {
    24.             GameObject newPrefab = Instantiate(prefab, Vector3.zero, Quaternion.identity);
    25.             newPrefab.name = prefab.name;
    26.             spawnedPrefabs.Add(prefab.name, newPrefab);
    27.         }
    28.     }
    29.  
    30.     private void OnEnable()
    31.     {
    32.         trackedImageManager.trackedImagesChanged += ImageChanged;
    33.     }
    34.  
    35.     private void OnDisable()
    36.     {
    37.         trackedImageManager.trackedImagesChanged -= ImageChanged;
    38.     }
    39.  
    40.     private void ImageChanged(ARTrackedImagesChangedEventArgs eventArgs)
    41.     {
    42.         foreach (ARTrackedImage trackedImage in eventArgs.added)
    43.         {
    44.             UpdateImage(trackedImage);
    45.         }
    46.         foreach (ARTrackedImage trackedImage in eventArgs.updated)
    47.         {
    48.             UpdateImage(trackedImage);
    49.         }
    50.         foreach (ARTrackedImage trackedImage in eventArgs.removed)
    51.         {
    52.             spawnedPrefabs[trackedImage.name].SetActive(false);
    53.         }
    54.     }
    55.  
    56.     private void UpdateImage(ARTrackedImage tackedImage)
    57.     {
    58.         string name = trackedImage.referenceImage.name;
    59.         Vector3 position = trackedImage.transform.position;
    60.  
    61.         GameObject prefab = spawnedPrefabs[name];
    62.         prefab.transform.position = position;
    63.         prefab.SetActive(true);
    64.  
    65.         foreach (GameObject go in spawnedPrefabs.Values)
    66.         {
    67.             if (go.name != name)
    68.             {
    69.                 go.SetActive(false);
    70.             }
    71.         }
    72.     }
    73. }
    74.  
    This is errors:

    Assets\ExampleAssets\Scripts\ImageTracking.cs(21,39): error CS0103: The name 'placeablePrefabs' does not exist in the current context

    Assets\ExampleAssets\Scripts\ImageTracking.cs(57,23): error CS0103: The name 'trackedImage' does not exist in the current context

    Assets\ExampleAssets\Scripts\ImageTracking.cs(58,28): error CS0103: The name 'trackedImage' does not exist in the current context


    I realy don't know where is problem. Maybe I don't see type error or something like that.

    Can someone help me to put this code to be functional?
    It is not necessary to be same code but I need functionality like on video after code typing.
     
    Last edited: Jul 3, 2021
  2. ProtiumDesign

    ProtiumDesign

    Joined:
    Aug 3, 2019
    Posts:
    3
    I solved this. It is type error. I type "tackedImage" insted "trackedImage".

    All is fine. Sorry for bothering you! And Thank you.