示例#1
0
    private static void DrawMarker(ARTrackedObject to, bool selected)
	{
        ARMarker m = to.GetMarker();
        if (m == null) return;
		if (!m.gameObject.activeInHierarchy) return; // Don't attempt to load inactive ARMarkers.
		
		// Attempt to load. Might not work out if e.g. for a single marker, pattern hasn't been
		// assigned yet, or for an NFT marker, dataset hasn't been specified.
		if (m.UID == ARMarker.NO_ID) {
			m.Load();
		}

		Matrix4x4 pose = to.gameObject.transform.localToWorldMatrix;
		//ARController.Log("pose=" + pose.ToString("F3"));

        switch (m.MarkerType) {

            case MarkerType.Square:
            case MarkerType.SquareBarcode:
				DrawSingleMarker(m, pose, selected);
                break;

			case MarkerType.Multimarker:
				DrawMultiMarker(m, pose, selected);
			    break;
			
			case MarkerType.NFT:
				DrawNFTMarker(m, pose, selected);
			    break;

        }
    }
示例#2
0
    public override void OnInspectorGUI()
    {
        ARTrackedObject arto = (ARTrackedObject)target;

        if (arto == null)
        {
            return;
        }

        arto.TrackableTag = EditorGUILayout.TextField("Marker tag", arto.TrackableTag);

        ARTrackable trackable = arto.GetTrackable();

        EditorGUILayout.LabelField("Got marker", trackable == null ? "no" : "yes");
        if (trackable != null)
        {
            string type = ARTrackable.TrackableTypeNames[trackable.Type];
            EditorGUILayout.LabelField("Marker UID", (trackable.UID != ARTrackable.NO_ID ? trackable.UID.ToString() : "Not loaded") + " (" + type + ")");
        }

        EditorGUILayout.Separator();

        arto.secondsToRemainVisible = EditorGUILayout.FloatField("Stay visible", arto.secondsToRemainVisible);

        EditorGUILayout.Separator();

        arto.eventReceiver = (GameObject)EditorGUILayout.ObjectField("Event Receiver:", arto.eventReceiver, typeof(GameObject), true);
    }
示例#3
0
        void Start()
        {
            enableHold = PlayerPrefs.GetInt(PrefKeys.HoldOnDetectMarker) == 1;

            trackedObject = GetComponent <ARTrackedObject>();

            // ARTrackedObject の OnTrackableFound を受け取れるようにする
            trackedObject.eventReceiver = gameObject;
        }
示例#4
0
        public void RemoveTrackedObject(ARTrackedObject trackedObject)
        {
            ARMarker marker = trackedObject.GetMarker();

            objectsForMarkers[marker].Remove(trackedObject);
            if (objectsForMarkers[marker].Count == 0)
            {
                objectsForMarkers.Remove(marker);
            }
        }
示例#5
0
    private void UpdateARImage(ARTrackedObject trackedObject)
    {
        // Display the name of the tracked image in the canvas
        //imageTrackedText.text = trackedImage.referenceImage.name;

        // Assign and Place Game Object
        AssignGameObject(trackedObject.referenceObject.name, trackedObject.transform.position);

        Debug.Log($"trackedImage.referenceImage.name: {trackedObject.referenceObject.name}");
    }
示例#6
0
        public void AddTrackedObject(ARTrackedObject trackedObject)
        {
            ARMarker marker = trackedObject.GetMarker();

            if (objectsForMarkers.ContainsKey(marker))
            {
                objectsForMarkers[marker].Add(trackedObject);
            }
            else
            {
                objectsForMarkers.Add(marker, new HashSet <ARTrackedObject> {
                    trackedObject
                });
            }
        }
    void UpdateInfo(ARTrackedObject trackedObject)
    {
        // Set canvas camera
        var canvas = trackedObject.GetComponentInChildren <Canvas>();

        canvas.worldCamera = worldSpaceCanvasCamera;
        //Find the GameObject
        GameObject obj = GameObject.Find("swiper");

        //Get script attached to it
        swiper_script = obj.GetComponent <PageSwiper>();
        //float scale = trackedObject.size.x;

        //Call the function
        //swiper_script.UpdatePos(scale);
    }
    private static void DrawMarker(ARTrackedObject to, bool selected)
    {
        ARTrackable m = to.GetTrackable();

        if (m == null || m.enabled == false)
        {
            return;
        }
        if (!m.gameObject.activeInHierarchy)
        {
            return;                                  // Don't attempt to load inactive ARMarkers.
        }
        // Attempt to load. Might not work out if e.g. for a single marker, pattern hasn't been
        // assigned yet, or for an NFT marker, dataset hasn't been specified.
        if (m.UID == ARTrackable.NO_ID)
        {
            m.Load();
        }

        Matrix4x4 pose = to.gameObject.transform.localToWorldMatrix;

        //ARController.Log("pose=" + pose.ToString("F3"));

        switch (m.Type)
        {
        case ARTrackable.TrackableType.Square:
        case ARTrackable.TrackableType.SquareBarcode:
            DrawSingleMarker(m, pose, selected);
            break;

        case ARTrackable.TrackableType.Multimarker:
            DrawMultiMarker(m, pose, selected);
            break;

        case ARTrackable.TrackableType.NFT:
        case ARTrackable.TrackableType.TwoD:
            DrawNFTMarker(m, pose, selected, false);
            break;
        }
    }
示例#9
0
    // Use this for initialization
    IEnumerator Start()
    {
        yield return(new WaitForEndOfFrame());

        //Find ARCamera and Camera objects
        aRcam = FindObjectOfType <ARCamera>(); // (or FindObjectsOfType(typeof(ARCamera)) as ARCamera[])
        c     = aRcam.gameObject.GetComponent <Camera>();

        arTrackedObj = FindObjectOfType <ARTrackedObject>();

        W = c.pixelWidth;
        H = c.pixelHeight;

        tex = new Texture2D(W, H, TextureFormat.RGB24, false);

        barcodeReader = new BarcodeReader {
            AutoRotate = false
        };

        productLoader = backgroundQuad.GetComponent <ProductPageLoader>();

        //Debug.Log(LogTag + "QR Detection Initialised");
    }
示例#10
0
    [DrawGizmo(GizmoType.NotInSelectionHierarchy | GizmoType.Pickable)] // Draw the gizmo if it is not selected and also no parent/ancestor object is selected. The gizmo can be picked in the editor. First argument of method is the type for which the Gizmo will be drawn.
#endif
    static void RenderARTrackedObjectGizmo(ARTrackedObject to, GizmoType gizmoType)
    {
        DrawMarker(to, (gizmoType & GizmoType.Active) != 0);
    }
示例#11
0
 static void RenderARTrackedObjectGizmo(ARTrackedObject to, GizmoType gizmoType)
 {
     DrawMarker(to, (gizmoType & GizmoType.Active) != 0);
 }
示例#12
0
 void UpdateObjInfo(ARTrackedObject trackedObject)
 {
     trackedObject.gameObject.SetActive(true);
 }