1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677 |
- using System.Collections.Generic;
- using UnityEngine;
- using UnityEngine.XR.ARFoundation;
- /// <summary>多图跟踪</summary>
- public class MultiImageTracking : MonoBehaviour
- {
- private ARTrackedImageManager ImgTrackedManager;
- private List<GameObject> mPrefabs = new List<GameObject>();
- private void Awake()
- {
- ImgTrackedManager = GetComponent<ARTrackedImageManager>();
- }
- private void Start()
- {
- //mPrefabs.Add(Resources.Load("Prefabs/Rafflesia") as GameObject);
- //mPrefabs.Add(Resources.Load("Prefabs/Logo") as GameObject);
- //mPrefabs.Add(Resources.Load("Prefabs/QRCode") as GameObject);
- //mPrefabs.Add(Resources.Load("Prefabs/One") as GameObject);
- //mPrefabs.Add(Resources.Load("Prefabs/Two") as GameObject);
- }
- private void OnEnable()
- {
- ImgTrackedManager.trackedImagesChanged += OnTrackedImagesChanged;
- }
- private void OnDisable()
- {
- ImgTrackedManager.trackedImagesChanged -= OnTrackedImagesChanged;
- }
- private void OnTrackedImagesChanged(ARTrackedImagesChangedEventArgs eventArgs)
- {
- foreach (var trackedImage in eventArgs.added)
- {
- OnImagesChanged(trackedImage);
- }
- }
- private void OnImagesChanged(ARTrackedImage referenceImage)
- {
- Debug.Log("Image name:" + referenceImage.referenceImage.name);
- switch (referenceImage.referenceImage.name)
- {
- case "Rafflesia":
- Instantiate(mPrefabs[0], referenceImage.transform);
- break;
- case "Logo":
-
- Instantiate(mPrefabs[1], referenceImage.transform);
- break;
- case "QRCode":
- Instantiate(mPrefabs[2], referenceImage.transform);
- break;
- case "One":
- Instantiate(mPrefabs[3], referenceImage.transform);
- break;
- case "Two":
- Instantiate(mPrefabs[4], referenceImage.transform);
- break;
- }
- }
- }
|