void TargetLost(ImageTargetController controller) { string name = controller.Target.name(); Debug.LogFormat("Lost target {{id = {0}, name = {1}}}", controller.Target.runtimeID(), controller.Target.name()); detectedTargets = detectedTargets & ~controllerMap[controller]; //remove controller from list of detected controllers }
private void AddCubeOnTarget(ImageTargetController controller) { videoPlayer.transform.parent = controller.transform; videoPlayer.transform.localPosition = new Vector3(0, 0, -0.1f); videoPlayer.transform.eulerAngles = new Vector3(0, 0, 0); videoPlayer.transform.localScale = new Vector3(1f, 1f / controller.Target.aspectRatio(), 1f); }
void TargetFound(ImageTargetController controller) { string name = controller.Target.name(); Debug.LogFormat("Found target {{id = {0}, name = {1}}}", controller.Target.runtimeID(), name); detectedTargets |= controllerMap[controller]; //add controller to list of detected controllers }
private void AddTargetControllerEvents(ImageTargetController controller) { if (!controller) { return; } controller.TargetFound += () => { Debug.LogFormat("Found target {{id = {0}, name = {1}}}", controller.Target.runtimeID(), controller.Target.name()); }; controller.TargetLost += () => { Debug.LogFormat("Lost target {{id = {0}, name = {1}}}", controller.Target.runtimeID(), controller.Target.name()); }; controller.TargetLoad += (Target target, bool status) => { imageTargetControllers[controller] = status ? true : imageTargetControllers[controller]; Debug.LogFormat("Load target {{id = {0}, name = {1}, size = {2}}} into {3} => {4}", target.runtimeID(), target.name(), controller.Size, controller.Tracker.name, status); }; controller.TargetUnload += (Target target, bool status) => { imageTargetControllers[controller] = status ? false : imageTargetControllers[controller]; Debug.LogFormat("Unload target {{id = {0}, name = {1}}} => {2}", target.runtimeID(), target.name(), status); }; }
private void Awake() { imageTracker = Session.GetComponentInChildren <ImageTrackerFrameFilter>(); cameraDevice = Session.GetComponentInChildren <VideoCameraDevice>(); // targets from scene controllerNamecard = GameObject.Find("ImageTarget-namecard").GetComponent <ImageTargetController>(); controllerIdback = GameObject.Find("ImageTarget-idback").GetComponent <ImageTargetController>(); imageTargetControllers[controllerNamecard] = false; imageTargetControllers[controllerIdback] = false; AddTargetControllerEvents(controllerNamecard); AddTargetControllerEvents(controllerIdback); CreateTargets(); var launcher = "AllSamplesLauncher"; if (Application.CanStreamedLevelBeLoaded(launcher)) { var button = BackButton.GetComponent <Button>(); button.onClick.AddListener(() => { UnityEngine.SceneManagement.SceneManager.LoadScene(launcher); }); } else { BackButton.gameObject.SetActive(false); } }
void Start() { SetPrefabs(); //界面切换初始化 canvasNav = GameObject.Find("/CanvasNav"); buttonNav = GameObject.Find("/Canvas/ButtonNav").GetComponent <Button>(); buttonNav.onClick.AddListener(ShowUINav); buttonNav.interactable = false; GameObject.Find("/CanvasNav/Panel/ButtonClose").GetComponent <Button>().onClick.AddListener(CloseUINav); //加载目标点 navRoot = GameObject.Find("/NavRoot").transform; common = GetComponent <Common>(); svContent = GameObject.Find("/CanvasNav/Panel/Scroll View/Viewport/Content").transform; LoadArrivalsAndScan(); LoadRoads(); SetLine(); status = -1; imageTarget = GameObject.Find("ImageTarget").GetComponent <ImageTargetController>(); imageTarget.TargetFound += OnFound; imageTarget.TargetLost += OnLost; scanFrame = GameObject.Find("/Canvas/Image"); scanFrame.SetActive(false); CloseUINav(); }
private void Awake() { var folder = Application.persistentDataPath + "/FrameRecording/"; if (!Directory.Exists(folder)) { Directory.CreateDirectory(folder); } filePath = folder + "recording.eif"; controllerNamecard = GameObject.Find("ImageTarget-namecard").GetComponent <ImageTargetController>(); controllerIdback = GameObject.Find("ImageTarget-idback").GetComponent <ImageTargetController>(); AddTargetControllerEvents(controllerNamecard); AddTargetControllerEvents(controllerIdback); CreateRecorder(); var launcher = "AllSamplesLauncher"; if (Application.CanStreamedLevelBeLoaded(launcher)) { var button = BackButton.GetComponent <Button>(); button.onClick.AddListener(() => { UnityEngine.SceneManagement.SceneManager.LoadScene(launcher); }); } else { BackButton.gameObject.SetActive(false); } }
public void CreateNewTarget(string filePath) { GameObject target = Instantiate(targetPrefab); ImageTargetController controller = target.GetComponent <ImageTargetController>(); controller.Type = PathType.Absolute; controller.TargetPath = filePath; controller.ImageTracker = trackerBehavior; }
private void AddCubeOnTarget(ImageTargetController controller) { var cube = GameObject.CreatePrimitive(PrimitiveType.Cube); cube.GetComponent <MeshRenderer>().material = Resources.Load("Materials/EasyAR") as Material; cube.transform.parent = controller.transform; cube.transform.localPosition = new Vector3(0, 0, -0.1f); cube.transform.eulerAngles = new Vector3(0, 0, 180); cube.transform.localScale = new Vector3(0.5f, 0.5f / controller.Target.aspectRatio(), 0.2f); }
private void LoadTargetIntoTracker(ImageTargetController controller) { controller.Tracker = tracker; controller.TargetFound += () => { isTracking = true; }; controller.TargetLost += () => { isTracking = false; }; }
private void LoadTargetIntoTracker(ImageTargetController controller) { controller.Tracker = tracker; controller.TargetFound += () => { cloudRecognizer.enabled = false; }; controller.TargetLost += () => { cloudRecognizer.enabled = true; }; }
private void Start() { controller = GetComponentInParent <ImageTargetController>(); meshRenderer = GetComponent <MeshRenderer>(); StatusChanged(); player = GetComponent <UnityEngine.Video.VideoPlayer>(); player.source = VideoSource.Url; var path = Application.streamingAssetsPath + "/" + VideoInStreamingAssets; if (Application.platform == RuntimePlatform.Android) { path = Application.persistentDataPath + "/" + VideoInStreamingAssets; } // Note: Use the Unity VideoPlayer in your own way. // We use video file in StreamingAssets in the samples only to keep compatiblity. // Some versions of Unity will have strange behaviors if video in resources. if (Application.platform == RuntimePlatform.Android && !File.Exists(path) && !path.StartsWith("https://")) { StartCoroutine(FileUtil.LoadFile(VideoInStreamingAssets, PathType.StreamingAssets, (data) => { StartCoroutine(WriteFile(path, data)); })); } else { player.url = path; ready = true; } controller.TargetFound += () => { if (FitTarget) { transform.localScale = new Vector3(1, 1 / controller.Target.aspectRatio(), 1); } found = true; StatusChanged(); }; controller.TargetLost += () => { found = false; StatusChanged(); }; player.prepareCompleted += (source) => { prepared = true; StatusChanged(); }; }
void Update() { if (Input.GetKeyDown(KeyCode.I)) { ImageTargetController.SwitchToNextImageTarget(); } if (localTarget != ImageTargetController.CurrentImageTarget) { ActiavteImageTarget(); localTarget = ImageTargetController.CurrentImageTarget; } }
private void Awake() { imageTracker = Session.GetComponentInChildren <ImageTrackerFrameFilter>(); cameraDevice = Session.GetComponentInChildren <VideoCameraDevice>(); // targets from scene controllerNamecard = GameObject.Find("ImageTarget-namecard").GetComponent <ImageTargetController>(); controllerIdback = GameObject.Find("ImageTarget-idback").GetComponent <ImageTargetController>(); imageTargetControllers[controllerNamecard] = false; imageTargetControllers[controllerIdback] = false; AddTargetControllerEvents(controllerNamecard); AddTargetControllerEvents(controllerIdback); CreateTargets(); }
//} private void CreatAllImageTarget() { //路径 //获取指定路径下面的所有资源文件 if (Directory.Exists(AssetConst.ImageSavePath)) { DirectoryInfo direction = new DirectoryInfo(AssetConst.ImageSavePath); FileInfo[] files = direction.GetFiles("*", SearchOption.AllDirectories); Debug.Log(files.Length); for (int i = 0; i < files.Length; i++) { if (Path.GetExtension(files[i].Name).ToLower() == ".jpg") { //Debug.Log("Name:" + Path.GetFileNameWithoutExtension(files[i].Name)); GameObject ImageTarget = new GameObject(Path.GetFileNameWithoutExtension(files[i].Name)); //ImageTarget.SetActive(true); ImageTarget.transform.localPosition = Vector3.zero; ImageTrackerBehaviour tracker = FindObjectOfType <ImageTrackerBehaviour>(); ImageTargetController targetController = ImageTarget.AddComponent <ImageTargetController>(); FerreroImageTargetBehaviour targetBehaviour = ImageTarget.AddComponent <FerreroImageTargetBehaviour>(); targetBehaviour.Bind(tracker); targetBehaviour.SetupWithImage(files[i].FullName, StorageType.Absolute, ImageTarget.name, new Vector2()); //创建画布 GameObject canvas = Instantiate(Resources.Load("picCanvas")) as GameObject; canvas.GetComponent <RectTransform>().sizeDelta = Singleton <ImageTargetDataModel> .GetInstance().GetPadWH(); targetBehaviour.Bind(tracker); Vector3 scaleP = Vector3.one * Singleton <ImageTargetDataModel> .GetInstance().GetScaleFatorFor(1); //Debug.Log("scaleP=" + scaleP); canvas.GetComponent <RectTransform>().localScale = scaleP; GameObject backGroundImage = canvas.transform.Find("backgroundImage").gameObject; backGroundImage.GetComponent <RectTransform>().sizeDelta = new Vector2(canvas.GetComponent <RectTransform>().sizeDelta.x, canvas.GetComponent <RectTransform>().sizeDelta.y); targetController.BG_IMG = backGroundImage; targetController.m_canvas = canvas; //Debug.Log("Load Canvas Prefab Suceess=======================" + canvas.name); canvas.transform.parent = targetBehaviour.gameObject.transform; } } //Debug.Log( "FullName:" + files[i].FullName ); //Debug.Log( "DirectoryName:" + files[i].DirectoryName ); } }
void Awake() { material = GetComponent <MeshRenderer>().material; imageTarget = GetComponentInParent <ImageTargetController>(); CameraRenderer.RequestTargetTexture((camera, texture) => { renderTexture = texture; }); imageTarget.TargetFound += () => { if (freezed.OnNone) { freezed = false; } }; }
private void Awake() { buttonText = ButtonChange.transform.Find("Text").GetComponent <Text>(); imageTarget = GetComponentInParent <ImageTargetController>(); material = GetComponent <MeshRenderer>().material; CameraRenderer.RequestTargetTexture((camera, texture) => { renderTexture = texture; }); imageTarget.TargetFound += () => { if (freezed.OnNone) { buttonText.text = "Freeze"; freezed = false; } ButtonChange.interactable = true; }; imageTarget.TargetLost += () => { ButtonChange.interactable = false; }; ButtonChange.onClick.AddListener(() => { if (freezed.Value) { freezed = false; buttonText.text = "Freeze"; if (freezedTexture) { Destroy(freezedTexture); } } else { freezed = true; buttonText.text = "Thaw"; if (freezedTexture) { Destroy(freezedTexture); } if (renderTexture) { freezedTexture = new RenderTexture(renderTexture.width, renderTexture.height, 0); Graphics.Blit(renderTexture, freezedTexture); } material.SetTexture("_MainTex", freezedTexture); } }); }
private void Awake() { vioCamera = Session.GetComponentInChildren <VIOCameraDeviceUnion>(); controllerNamecard = GameObject.Find("ImageTarget").GetComponent <ImageTargetController>(); TouchControl.TurnOn(TouchControl.gameObject.transform, Camera.main, true, true, true, true); var launcher = "AllSamplesLauncher"; if (Application.CanStreamedLevelBeLoaded(launcher)) { var button = BackButton.GetComponent <Button>(); button.onClick.AddListener(() => { UnityEngine.SceneManagement.SceneManager.LoadScene(launcher); }); } else { BackButton.gameObject.SetActive(false); } }
public void CheckExhibitCompletion() { if (!IsSwordOver) { if (exhibitAudioManager.SwordStory[1].hasFinished && exhibitAudioManager.SwordStory[2].hasFinished && exhibitAudioManager.SwordStory[3].hasFinished) { IsSwordOver = true; ExhibitVisitedEvent(ExhibitTag.Sword); StartCoroutine(MoveOnToNextExhibit(swordMoveOn)); ImageTargetController.SwitchToNextImageTarget(); } } if (!IsNeedlesOver) { if (exhibitAudioManager.NeedlesStory[1].hasFinished && exhibitAudioManager.NeedlesStory[2].hasFinished && exhibitAudioManager.NeedlesStory[3].hasFinished) { IsNeedlesOver = true; ExhibitVisitedEvent(ExhibitTag.Tattoo); StartCoroutine(MoveOnToNextExhibit(needlesMoveOn)); ImageTargetController.SwitchToNextImageTarget(); } } if (!IsTubOver) { if (exhibitAudioManager.TubStory[1].hasFinished && exhibitAudioManager.TubStory[2].hasFinished && exhibitAudioManager.TubStory[3].hasFinished) { IsTubOver = true; ExhibitVisitedEvent(ExhibitTag.Bathtub); StartCoroutine(MoveOnToNextExhibit(tubMoveOn)); ImageTargetController.SwitchToNextImageTarget(); } } if (!IsSignOver) { if (exhibitAudioManager.SignStory[1].hasFinished && exhibitAudioManager.SignStory[2].hasFinished && exhibitAudioManager.SignStory[3].hasFinished) { IsSignOver = true; ExhibitVisitedEvent(ExhibitTag.Petrea); StartCoroutine(MoveOnToNextExhibit(signMoveOn)); ImageTargetController.SwitchToNextImageTarget(); } } if (!IsSkullOver) { if (exhibitAudioManager.SkullStory[1].hasFinished && exhibitAudioManager.SkullStory[2].hasFinished && exhibitAudioManager.SkullStory[3].hasFinished) { IsSkullOver = true; ExhibitVisitedEvent(ExhibitTag.Skull); StartCoroutine(MoveOnToNextExhibit(skullMoveOn)); ImageTargetController.SwitchToNextImageTarget(); } } if (!IsBankOver) { if (exhibitAudioManager.BankStory[1].hasFinished && exhibitAudioManager.BankStory[2].hasFinished && exhibitAudioManager.BankStory[3].hasFinished) { IsBankOver = true; ExhibitVisitedEvent(ExhibitTag.Bank); StartCoroutine(MoveOnToNextExhibit(bankMoveOn)); ImageTargetController.SwitchToNextImageTarget(); } } }
private void Awake() { tracker = Session.GetComponentInChildren <SurfaceTrackerFrameFilter>(); controllerNamecard = GameObject.Find("ImageTarget").GetComponent <ImageTargetController>(); TouchControl.TurnOn(TouchControl.transform, Camera.main, false, false, true, true); }
private void Start() { controller = GetComponentInParent <ImageTargetController>(); meshRenderer = GetComponent <MeshRenderer>(); StatusChanged(); player = GetComponent <UnityEngine.Video.VideoPlayer>(); player.source = VideoSource.Url; var path = Application.streamingAssetsPath + "/" + VideoInStreamingAssets; if (Application.platform == RuntimePlatform.Android) { path = Application.persistentDataPath + "/" + VideoInStreamingAssets; { // Workaround Unity bug: https://issuetracker.unity3d.com/issues/android-video-player-cannot-play-files-located-in-the-persistent-data-directory-on-android-10 // more info in this thread: https://forum.unity.com/threads/error-videoplayer-on-android.742451/ // If you are using Unity versions with this issue fixed, you can safely skip this code block int sdkVersion = 0; #if UNITY_ANDROID && !UNITY_EDITOR using (var buildVersion = new AndroidJavaClass("android.os.Build$VERSION")) { sdkVersion = buildVersion.GetStatic <int>("SDK_INT"); } #endif if (sdkVersion >= 29) { GUIPopup.EnqueueMessage("Use web video to workaround Unity VideoPlayer bug on Android Q\nthe video play may be slow", 5); path = "https://staticfile-cdn.sightp.com/easyar/video/" + Path.GetFileName(VideoInStreamingAssets); } } } // Note: Use the Unity VideoPlayer in your own way. // We use video file in StreamingAssets in the samples only to keep compatiblity. // Some versions of Unity will have strange behaviors if video in resources. if (Application.platform == RuntimePlatform.Android && !File.Exists(path) && !path.StartsWith("https://")) { StartCoroutine(FileUtil.LoadFile(VideoInStreamingAssets, PathType.StreamingAssets, (data) => { StartCoroutine(WriteFile(path, data)); })); } else { player.url = FileUtil.PathToUrl(path); ready = true; } controller.TargetFound += () => { if (FitTarget) { transform.localScale = new Vector3(1, 1 / controller.Target.aspectRatio(), 1); } found = true; StatusChanged(); }; controller.TargetLost += () => { found = false; StatusChanged(); }; player.prepareCompleted += (source) => { prepared = true; StatusChanged(); }; }
public void Awake() { trackedImageManager = GameObject.FindObjectOfType <ARSessionOrigin>().GetComponent <ARTrackedImageManager>(); imageTargetController = GetComponent <ImageTargetController>(); }
private void Awake() { vioCamera = Session.GetComponentInChildren <VIOCameraDeviceUnion>(); controllerNamecard = GameObject.Find("ImageTarget").GetComponent <ImageTargetController>(); TouchControl.TurnOn(TouchControl.gameObject.transform, Camera.main, true, true, true, true); }