Пример #1
0
        /// <summary>
        /// this addes images target runtime to the xrreference library through unity job system
        /// </summary>
        /// <param name="texture2D"></param>
        /// <returns></returns>
        public IEnumerator AddImageJob(ImageTargetVideoUrlTemplate t)
        {
            yield return(null);



            print("Adding image\n");

            print("Job Starting...");

            var firstGuid  = new SerializableGuid(0, 0);
            var secondGuid = new SerializableGuid(0, 0);

            //   XRReferenceImage newImage = new XRReferenceImage(firstGuid, secondGuid, new Vector2(0.1f, 0.1f), Guid.NewGuid().ToString(), texture2D);
            addedImageCount++;
            XRReferenceImage newImage = new XRReferenceImage(firstGuid, secondGuid, new Vector2(0.1f, 0.1f), addedImageCount.ToString(), currentDownloadedTexture);

            try
            {
                loadingGameObj.SetActive(true);

                Debug.Log("new image naame" + newImage.ToString());

                MutableRuntimeReferenceImageLibrary mutableRuntimeReferenceImageLibrary = trackImageManager.referenceLibrary as MutableRuntimeReferenceImageLibrary;



                var jobHandle = mutableRuntimeReferenceImageLibrary.ScheduleAddImageJob(currentDownloadedTexture, addedImageCount.ToString(), 0.1f);

                while (!jobHandle.IsCompleted)
                {
                    print("Job Running...");
                }

                loadingGameObj.SetActive(false);
                Debug.Log("job finsihed added to dictionary");
                //  referenceImageAddedEvent?.Invoke(newImage,t);
                GetComponent <DynamicImgVideoSpawner>().OnReferenceImageAdded(newImage, t);

                currentDownloadedTexture = null;
                Resources.UnloadUnusedAssets();
                GC.Collect();
                //image downloaded and added to library
                //  imageTargetUrlGetter.OnUnityEntered();

                print("image downloaded and added to library");
                print("image count" + mutableRuntimeReferenceImageLibrary.count);
                //print("name da mame " + newImage.name);
            }
            catch (Exception e)
            {
                print(e.ToString());
            }
        }
Пример #2
0
    public IEnumerator AddImageJob(Texture2D texture2D)
    {
        yield return(null);

        //debugLog.text = string.Empty;

        debugLog.text += "Adding image\n";

        jobLog.text = "Job Starting...";

        var firstGuid  = new SerializableGuid(0, 0);
        var secondGuid = new SerializableGuid(0, 0);

        XRReferenceImage newImage = new XRReferenceImage(firstGuid, secondGuid, new Vector2(0.1f, 0.1f), Guid.NewGuid().ToString(), texture2D);

        try
        {
            Debug.Log(newImage.ToString());

            MutableRuntimeReferenceImageLibrary mutableRuntimeReferenceImageLibrary = trackImageManager.referenceLibrary as MutableRuntimeReferenceImageLibrary;

            debugLog.text += $"TextureFormat.RGBA32 supported: {mutableRuntimeReferenceImageLibrary.IsTextureFormatSupported(TextureFormat.RGBA32)}\n";

            debugLog.text += $"TextureFormat size: {texture2D.width}px width {texture2D.height}px height\n";

            var jobHandle = mutableRuntimeReferenceImageLibrary.ScheduleAddImageJob(texture2D, Guid.NewGuid().ToString(), 0.1f);

            while (!jobHandle.IsCompleted)
            {
                jobLog.text = "Job Running...";
            }

            jobLog.text    = "Job Completed...";
            debugLog.text += $"Job Completed ({mutableRuntimeReferenceImageLibrary.count})\n";
            debugLog.text += $"Supported Texture Count ({mutableRuntimeReferenceImageLibrary.supportedTextureFormatCount})\n";
            debugLog.text += $"trackImageManager.trackables.count ({trackImageManager.trackables.count})\n";
            debugLog.text += $"trackImageManager.trackedImagePrefab.name ({trackImageManager.trackedImagePrefab.name})\n";
            debugLog.text += $"trackImageManager.maxNumberOfMovingImages ({trackImageManager.maxNumberOfMovingImages})\n";
            debugLog.text += $"trackImageManager.supportsMutableLibrary ({trackImageManager.subsystem.SubsystemDescriptor.supportsMutableLibrary})\n";
            debugLog.text += $"trackImageManager.requiresPhysicalImageDimensions ({trackImageManager.subsystem.SubsystemDescriptor.requiresPhysicalImageDimensions})\n";
        }
        catch (Exception e)
        {
            debugLog.text = e.ToString();
        }
    }
    public IEnumerator AddImageJob(Texture2D texture2D)
    {
        yield return(null);

        Debug.Log("tex name " + texture2D.name);
        var firstGuid  = new SerializableGuid(0, 0);
        var secondGuid = new SerializableGuid(0, 0);

        //   XRReferenceImage newImage = new XRReferenceImage(firstGuid, secondGuid, new Vector2(0.1f, 0.1f), Guid.NewGuid().ToString(), texture2D);
        addedImageCount++;
        XRReferenceImage newImage = new XRReferenceImage(firstGuid, secondGuid, new Vector2(0.1f, 0.1f), addedImageCount.ToString(), texture2D);

        // loadingCanvas.SetActive(true);
        try
        {
            Debug.Log(newImage.ToString());

            MutableRuntimeReferenceImageLibrary mutableRuntimeReferenceImageLibrary = trackImageManager.referenceLibrary as MutableRuntimeReferenceImageLibrary;



            var jobHandle = mutableRuntimeReferenceImageLibrary.ScheduleAddImageJob(texture2D, addedImageCount.ToString(), 0.1f);

            while (!jobHandle.IsCompleted)
            {
                print("Job Running...");
            }
            //loadingCanvas.SetActive(false);

            Debug.Log("job finsihed added to dictionary");
            // referenceImageAddedEvent?.Invoke(newImage, t);
            //image downloaded and added to library
            //  imageTargetUrlGetter.OnUnityEntered();
            print("image downloaded and added to library");

            //print("name da mame " + newImage.name);
            Destroy(texture2D);
            GC.Collect();
        }
        catch (Exception e)
        {
            print(e.ToString());
        }
    }