本文主要是介绍vuforia模型脱卡功能的实现,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
这是转载,转载,转载,附原地址:
http://www.manew.com/thread-92769-1-1.html
实现思路是这样:
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 | using UnityEngine; using Vuforia; public class pageNotFound404 : MonoBehaviour,ITrackableEventHandler { private TrackableBehaviour mTrackableBehaviour; public Transform Target; //识别物 Vector3 imgPos= new Vector3 (0,0.372f,0); //识别图上的位置 Vector3 camPos= new Vector3 (0,0,500); //脱卡后在屏幕中的位置 //这俩值,具体多少得自己调,模型尺寸、重心不同 bool isFirstTime= true ; void Start() { mTrackableBehaviour = GetComponent<TrackableBehaviour>(); if (mTrackableBehaviour) { mTrackableBehaviour.RegisterTrackableEventHandler( this ); } Target .GetComponent<MeshRenderer>().enabled= false ; //起始时不显示 } public void OnTrackableStateChanged( TrackableBehaviour.Status previousStatus, TrackableBehaviour.Status newStatus) { if (newStatus == TrackableBehaviour.Status.DETECTED || newStatus == TrackableBehaviour.Status.TRACKED || newStatus == TrackableBehaviour.Status.EXTENDED_TRACKED) { //视野内发现识别图时 Target .GetComponent<MeshRenderer>().enabled= true ; Target.parent = this .transform ; Target.localPosition = imgPos; Target.localRotation = Quaternion.identity; isFirstTime = false ; } else { //视野内没有识别图时,这里我是把位置和旋转都归零了,如果不做处理,可以 if (!isFirstTime){ Target.parent=Camera.main .transform; Target.localPosition= camPos; Target.localRotation = Quaternion.identity; } } } } |

这篇关于vuforia模型脱卡功能的实现的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!