这是转载,转载,转载,附原地址:
.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; } } } } |
本文发布于:2024-01-29 07:03:14,感谢您对本站的认可!
本文链接:https://www.4u4v.net/it/170648299713545.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |