public void DestroyLastTrackable() { // Deactivates the dataset first m_ObjectTracker.DeactivateDataSet(m_UDT_DataSet); IEnumerable <Trackable> trackables = m_UDT_DataSet.GetTrackables(); Trackable newest = null; foreach (Trackable trackable in trackables) { if (newest == null || trackable.ID > newest.ID) { newest = trackable; } } if (newest != null) { Debug.Log("Destroying newest trackable in UDT dataset: " + newest.Name); m_UDT_DataSet.Destroy(newest, true); Debug.Log("destroyed"); } // Activate the dataset again m_ObjectTracker.ActivateDataSet(m_UDT_DataSet); // Make sure TargetBuildingBehaviour keeps scanning... m_TargetBuildingBehaviour.StartScanning(); }
public void BuildNewTarget() { //CameraDevice.Instance.SetFocusMode(CameraDevice.FocusMode.FOCUS_MODE_TRIGGERAUTO); _targetBuildingBehaviour.StartScanning(); if (_frameQuality != ImageTargetBuilder.FrameQuality.FRAME_QUALITY_NONE) { _targetBuildingBehaviour.BuildNewTarget(string.Format("{0}_instance", _imageTargetTemplate.TrackableName), _imageTargetTemplate.GetSize().x); } else { Debug.Log("Cannot build new target, due to poor camera image quality"); } }
public void BuildNewTarget() { //CameraDevice.Instance.SetFocusMode(CameraDevice.FocusMode.FOCUS_MODE_TRIGGERAUTO); _targetBuildingBehaviour.StartScanning(); if (_frameQuality != ImageTargetBuilder.FrameQuality.FRAME_QUALITY_NONE) { _targetBuildingBehaviour.BuildNewTarget($"{_imageTargetTemplate.TrackableName}_instance", _imageTargetTemplate.GetSize().x); //TODO make more abstract TurbineViewModel.Instance.IsTargetShown = false; } else { Debug.Log("Cannot build new target, due to poor camera image quality"); //TODO make more abstract TurbineViewModel.Instance.IsTargetShown = true; } }
public void OnNewTrackableSource(TrackableSource trackableSource)// метод который отвечает за новую отслеживаемую цель, подробнее по ссылке https://library.vuforia.com/articles/Training/User-Defined-Targets-Guide { targetCount++; ObjTracker.DeactivateDataSet(dataSet); // поскольку мы собираемся использовать новый набор данных нужно Deactivate старый набор. dataSet.CreateTrackable(trackableSource, targetBehaviour.gameObject); // узнаем что отслеживается нами// первая переменная это отслеживаемый источник в данный момент, а второй это цель т.е. ImageTraget если не понятно то по ссылке https://library.vuforia.com/articles/Training/User-Defined-Targets-Guide ObjTracker.ActivateDataSet(dataSet); // активация нового набора данных UDT_BuildingBehaviour.StartScanning(); // начать отслеживание }
public void OnNewTrackableSource(TrackableSource trackableSource) { targetCounter++; objectTracker.DeactivateDataSet(dataSet); dataSet.CreateTrackable(trackableSource, targetBehaviour.gameObject); // create a new trackable image and add it to dataset objectTracker.ActivateDataSet(dataSet); // re-activate data set udt_targetBuildingBehavior.StartScanning(); // start tracking }
public void BuildNewTarget() { //TODO temporary //_imageTargetTemplate.GetComponent<GameObjectBase>().IsActive = true; //OnTargetBuilt?.Invoke(this,new TargetBuiltEventArgs(_imageTargetTemplate.GetComponent<TrackableObject>())); //return; //CameraDevice.Instance.SetFocusMode(CameraDevice.FocusMode.FOCUS_MODE_TRIGGERAUTO); _targetBuildingBehaviour.StartScanning(); if (_frameQuality != ImageTargetBuilder.FrameQuality.FRAME_QUALITY_NONE) { _targetBuildingBehaviour.BuildNewTarget(string.Format("{0}_instance", _imageTargetTemplate.TrackableName), _imageTargetTemplate.GetSize().x); } else { Debug.Log("Cannot build new target, due to poor camera image quality"); } }
void Update() { if (Input.GetMouseButtonDown(0)) { //m_ObjectTracker.Stop (); if (m_ObjectTracker.IsActive) { m_ObjectTracker.Stop(); m_TargetBuildingBehaviour.StartScanning(); } else { BuildNewTarget(); m_ObjectTracker.Start(); debugMessage.SetDebugText("Tracking..."); } } }
public void OnNewTrackableSource(TrackableSource trackableSource) { targetCounter++; objectTracker.DeactivateDataSet(dataSet); dataSet.CreateTrackable(trackableSource, targetBehavior.gameObject); objectTracker.ActivateDataSet(dataSet); udt_targetBuildingBehavior.StartScanning(); }
/// <summary> /// Takes a new trackable source and adds it to the dataset /// This gets called automatically as soon as you 'BuildNewTarget with UserDefinedTargetBuildingBehaviour /// </summary> public void OnNewTrackableSource(TrackableSource trackableSource) { m_TargetCounter++; // Deactivates the dataset first m_ObjectTracker.DeactivateDataSet(m_UDT_DataSet); // Destroy the oldest target if the dataset is full or the dataset // already contains five user-defined targets. if (m_UDT_DataSet.HasReachedTrackableLimit() || m_UDT_DataSet.GetTrackables().Count() >= MAX_TARGETS) { IEnumerable <Trackable> trackables = m_UDT_DataSet.GetTrackables(); Trackable oldest = null; foreach (Trackable trackable in trackables) { if (oldest == null || trackable.ID < oldest.ID) { oldest = trackable; } } if (oldest != null) { Debug.Log("Destroying oldest trackable in UDT dataset: " + oldest.Name); m_UDT_DataSet.Destroy(oldest, true); } } // Get predefined trackable and instantiate it ImageTargetBehaviour imageTargetCopy = Instantiate(ImageTargetTemplate); imageTargetCopy.gameObject.name = "UserDefinedTarget-" + m_TargetCounter; imageTargetCopy.gameObject.SetActive(true); // Add the duplicated trackable to the data set and activate it m_UDT_DataSet.CreateTrackable(trackableSource, imageTargetCopy.gameObject); // Activate the dataset again m_ObjectTracker.ActivateDataSet(m_UDT_DataSet); // Make sure TargetBuildingBehaviour keeps scanning... m_TargetBuildingBehaviour.StartScanning(); }
/// <summary> /// Takes a new trackable source and adds it to the dataset /// This gets called automatically as soon as you 'BuildNewTarget with UserDefinedTargetBuildingBehaviour /// </summary> public void OnNewTrackableSource(TrackableSource trackableSource) { mTargetCounter++; // Deactivates the dataset first mObjectTracker.DeactivateDataSet(mBuiltDataSet); // Destroy the oldest target if the dataset is full or the dataset // already contains five user-defined targets. if (mBuiltDataSet.HasReachedTrackableLimit() || mBuiltDataSet.GetTrackables().Count() >= MAX_TARGETS) { IEnumerable <Trackable> trackables = mBuiltDataSet.GetTrackables(); Trackable oldest = null; Debug.Log(" text 123456789"); foreach (Trackable trackable in trackables) { if (oldest == null || trackable.ID < oldest.ID) { oldest = trackable; } } if (oldest != null) { Debug.Log("Destroying oldest trackable in UDT dataset: " + oldest.Name); mBuiltDataSet.Destroy(oldest, true); } } // Get predefined trackable and instantiate it ImageTargetBehaviour imageTargetCopy = (ImageTargetBehaviour)Instantiate(ImageTargetTemplate); imageTargetCopy.gameObject.name = "UserDefinedTarget-" + mTargetCounter; // Add the duplicated trackable to the data set and activate it mBuiltDataSet.CreateTrackable(trackableSource, imageTargetCopy.gameObject); // Activate the dataset again mObjectTracker.ActivateDataSet(mBuiltDataSet); // Extended Tracking with user defined targets only works with the most recently defined target. // If tracking is enabled on previous target, it will not work on newly defined target. // Don't need to call this if you don't care about extended tracking. StopExtendedTracking(); mObjectTracker.Stop(); mObjectTracker.ResetExtendedTracking(); mObjectTracker.Start(); // Make sure TargetBuildingBehaviour keeps scanning... mTargetBuildingBehaviour.StartScanning(); }
public void OnNewTrackableSource(TrackableSource trackableSource) { targetCounter++; objectTracker.DeactivateDataSet(dataSet); dataSet.CreateTrackable(trackableSource, targetBehaviour.gameObject); objectTracker.ActivateDataSet(dataSet); udt_targetBuildingBehaviour.StartScanning(); //throw new System.NotImplementedException(); }
/// <summary> /// Takes a new trackable source and adds it to the dataset /// This gets called automatically as soon as you 'BuildNewTarget with UserDefinedTargetBuildingBehaviour /// </summary> public void OnNewTrackableSource(TrackableSource trackableSource) { // Deactivates the dataset first m_ObjectTracker.DeactivateDataSet(m_UDT_DataSet); // Destroy the oldest target in the dataset if a new target is created IEnumerable <Trackable> trackables = m_UDT_DataSet.GetTrackables(); Trackable oldest = null; //fetch for the last target to destroy it foreach (Trackable trackable in trackables) { if (oldest == null || trackable.ID < oldest.ID) { oldest = trackable; } } if (oldest != null) { Debug.Log("Destroying oldest trackable in UDT dataset: " + oldest.Name); m_UDT_DataSet.Destroy(oldest, true); } // Get predefined trackable and instantiate it ImageTargetBehaviour imageTargetCopy = Instantiate(ImageTargetTemplate); imageTargetCopy.gameObject.name = "USERTARGET"; // Add the duplicated trackable to the data set and activate it m_UDT_DataSet.CreateTrackable(trackableSource, imageTargetCopy.gameObject); // Activate the dataset again m_ObjectTracker.ActivateDataSet(m_UDT_DataSet); m_ObjectTracker.Stop(); m_ObjectTracker.ResetExtendedTracking(); m_ObjectTracker.Start(); // Make sure TargetBuildingBehaviour keeps scanning... m_TargetBuildingBehaviour.StartScanning(); }
/// <summary> /// Takes a new trackable source and adds it to the dataset /// This gets called automatically as soon as you 'BuildNewTarget with UserDefinedTargetBuildingBehaviour /// </summary> public void OnNewTrackableSource(TrackableSource trackableSource) { mTargetCounter++; // Deactivates the dataset first mObjectTracker.DeactivateDataSet(mBuiltDataSet); // Destroy the oldest target if the dataset is full or the dataset // already contains five user-defined targets. if (mBuiltDataSet.HasReachedTrackableLimit() || mBuiltDataSet.GetTrackables().Count() >= MAX_TARGETS) { IEnumerable <Trackable> trackables = mBuiltDataSet.GetTrackables(); Trackable oldest = null; foreach (Trackable trackable in trackables) { if (oldest == null || trackable.ID < oldest.ID) { oldest = trackable; } } if (oldest != null) { Debug.Log("Destroying oldest trackable in UDT dataset: " + oldest.Name); mBuiltDataSet.Destroy(oldest, true); } } // Get predefined trackable and instantiate it ImageTargetBehaviour imageTargetCopy = (ImageTargetBehaviour)Instantiate(ImageTargetTemplate); imageTargetCopy.gameObject.name = "UserDefinedTarget-" + mTargetCounter; // Add the duplicated trackable to the data set and activate it mBuiltDataSet.CreateTrackable(trackableSource, imageTargetCopy.gameObject); // Activate the dataset again mObjectTracker.ActivateDataSet(mBuiltDataSet); // Extended Tracking with user defined targets only works with the most recently defined target. // If tracking is enabled on previous target, it will not work on newly defined target. // Don't need to call this if you don't care about extended tracking. StopExtendedTracking(); mObjectTracker.Stop(); mObjectTracker.ResetExtendedTracking(); mObjectTracker.Start(); //Edited part according to application requirements Button settings_button; GameObject BuildPanel; GameObject click_button; GameObject[] created_target; click_button = GameObject.Find("BuildButton"); click_button.active = false; BuildPanel = GameObject.Find("BuildPanel"); BuildPanel.active = false; ImageTargetTemplate.gameObject.active = false; settings_button = GameObject.FindGameObjectWithTag("settings_button").GetComponent <Button>(); settings_button.onClick.Invoke(); //Edited part ends here // Make sure TargetBuildingBehaviour keeps scanning... mTargetBuildingBehaviour.StartScanning(); }
void TurnOnArMode() { UserDefinedTargetBuilder.StartScanning(); standardContent.SetActive(false); }
/// <summary> /// Takes a new trackable source and adds it to the dataset /// This gets called automatically as soon as you 'BuildNewTarget with UserDefinedTargetBuildingBehaviour /// </summary> public void OnNewTrackableSource(TrackableSource trackableSource) { m_TargetCounter++; // Deactivates the dataset first m_ObjectTracker.DeactivateDataSet(m_UDT_DataSet); // Destroy the oldest target if the dataset is full or the dataset // already contains five user-defined targets. if (m_UDT_DataSet.HasReachedTrackableLimit() || m_UDT_DataSet.GetTrackables().Count() >= MAX_TARGETS) { IEnumerable <Trackable> trackables = m_UDT_DataSet.GetTrackables(); Trackable oldest = null; foreach (Trackable trackable in trackables) { if (oldest == null || trackable.ID < oldest.ID) { oldest = trackable; } } if (oldest != null) { Debug.Log("Destroying oldest trackable in UDT dataset: " + oldest.Name); m_UDT_DataSet.Destroy(oldest, true); } } // Get predefined trackable and instantiate it ImageTargetBehaviour imageTargetCopy; switch (m_ChooseSound.GetCurrentSound()) { /// ドラム case "Bass": imageTargetCopy = Instantiate(BassTarget); imageTargetCopy.gameObject.name = "Bass" + m_TargetCounter; break; case "Cymbal": imageTargetCopy = Instantiate(CymbalTarget); imageTargetCopy.gameObject.name = "Cymbal" + m_TargetCounter; break; case "Hat": imageTargetCopy = Instantiate(HatTarget); imageTargetCopy.gameObject.name = "Hat" + m_TargetCounter; break; case "Snare": imageTargetCopy = Instantiate(SnareTarget); imageTargetCopy.gameObject.name = "Snare" + m_TargetCounter; break; /// ピアノ case "Do": imageTargetCopy = Instantiate(Do); imageTargetCopy.gameObject.name = "Do" + m_TargetCounter; break; case "Re": imageTargetCopy = Instantiate(Re); imageTargetCopy.gameObject.name = "Re" + m_TargetCounter; break; case "Mi": imageTargetCopy = Instantiate(Mi); imageTargetCopy.gameObject.name = "Mi" + m_TargetCounter; break; case "Fa": imageTargetCopy = Instantiate(Fa); imageTargetCopy.gameObject.name = "Fa" + m_TargetCounter; break; case "So": imageTargetCopy = Instantiate(So); imageTargetCopy.gameObject.name = "So" + m_TargetCounter; break; case "Ra": imageTargetCopy = Instantiate(Ra); imageTargetCopy.gameObject.name = "Ra" + m_TargetCounter; break; case "Si": imageTargetCopy = Instantiate(Si); imageTargetCopy.gameObject.name = "Si" + m_TargetCounter; break; case "Do2": imageTargetCopy = Instantiate(Do2); imageTargetCopy.gameObject.name = "Do2" + m_TargetCounter; break; default: imageTargetCopy = Instantiate(Empty); break; } // Add the duplicated trackable to the data set and activate it m_UDT_DataSet.CreateTrackable(trackableSource, imageTargetCopy.gameObject); // Activate the dataset again m_ObjectTracker.ActivateDataSet(m_UDT_DataSet); // Make sure TargetBuildingBehaviour keeps scanning... m_TargetBuildingBehaviour.StartScanning(); }
/// <summary> /// Renders the UI, depending on the current state /// </summary> void OnGUI() { if (mOnInitializedCalled) { // BeginOnGUI tells the user interface to reset some values and set the right GUISkin mUserInterface.BeginOnGUI(); // check in which mode we are if (mFrameQuality == ImageTargetBuilder.FrameQuality.FRAME_QUALITY_NONE) { if (QCARRuntimeUtilities.IsLandscapeOrientation) { if (!mDrawInstructionsFlag) { // Draws Landscape UI for ViewFinder Mode & process button actions if (mUserInterface.DrawViewFinderModeLandscapeUI() == UserDefinedTargetBuildingUI.ButtonID.ENTER_SCANNING_MODE_PRESSED) { // Checks if the instructions Screen need to be displayed if (mDoShowInstructions) { // Draws the instructions UI mDrawInstructionsFlag = true; } else { // Enters the scanning mode mTargetBuildingBehaviour.StartScanning(); } } } else { // Draws the Landscape Instructions UI UserDefinedTargetBuildingUI.ButtonID buttonPreessedId = mUserInterface.DrawInstructionsLandscapeUI(); // Checks Instructions button pressed if (buttonPreessedId == UserDefinedTargetBuildingUI.ButtonID.INSTRUCTIONS_OK_PRESSED) { mDrawInstructionsFlag = false; mDoShowInstructions = false; mTargetBuildingBehaviour.StartScanning(); } else if (buttonPreessedId == UserDefinedTargetBuildingUI.ButtonID.CANCEL_PRESSED) { mDrawInstructionsFlag = false; } } } else { if (!mDrawInstructionsFlag) { // Draws Portrait mode for ViewFinder Mode & process button actions if (mUserInterface.DrawViewFinderModePortraitUI() == UserDefinedTargetBuildingUI.ButtonID.ENTER_SCANNING_MODE_PRESSED) { // Checks if the instructions Screen need to be displayed if (mDoShowInstructions) { // Draws the instructions UI mDrawInstructionsFlag = true; } else { // Enters the scanning mode mTargetBuildingBehaviour.StartScanning(); } } } else { // Draws the portrait Instructions UI UserDefinedTargetBuildingUI.ButtonID buttonPreessedId = mUserInterface.DrawInstructionsPortraitUI(); // Checks Instructions button pressed if (buttonPreessedId == UserDefinedTargetBuildingUI.ButtonID.INSTRUCTIONS_OK_PRESSED) { mDrawInstructionsFlag = false; mDoShowInstructions = false; mTargetBuildingBehaviour.StartScanning(); } else if (buttonPreessedId == UserDefinedTargetBuildingUI.ButtonID.CANCEL_PRESSED) { mDrawInstructionsFlag = false; } } } } // draw scanning mode UI, decides internally what should be rendered mScanModeUILogic.DrawUI(mFrameQuality); } }