从文件或Texture2D对象在运行时创建即时图像目标
或者,可以在运行时在C#中创建即时图像目标。将以下代码附加到场景中的任何游戏对象。脚本从流媒体资产/Vuforia文件夹并在运行时创建图像目标。有关运行时加载的更多信息,请参阅统一创建和加载目标.
注意:A类许可证密钥必须添加才能使用即时图像目标。
使用UnityEngine;使用Vuforia;公共类SideLoadImageTarget:MonoBehaviour{public Texture2D纹理文件;公共float printedTargetSize;公共字符串targetName;无效开始(){//初始化Vuforia引擎后,使用VuforiaApplication调用函数Vuforia应用程序。实例。OnVuforiaStarted+=CreateImageTargetFromSideloadedTexture;}无效CreateImageTargetFromSideloadedTexture(){var mTarget=VuforiaBehaviour。实例。观察员工厂。创建图像目标(纹理文件,打印的目标大小,目标名称);//将默认观察者事件处理程序添加到新创建的游戏对象mTarget.game对象。添加组件<DefaultObserverEventHandler>();调试。日志(“创建即时图像目标”+mTarget.TargetName);}}
来自外部纹理2D源的图像目标
下面的代码示例从web URL下载纹理图像并生成图像目标。将脚本附加到ARCamera游戏对象。
使用UnityEngine;使用UnityEngine。网络;使用系统。收藏;使用Vuforia;公共类SideLoadFromWeb:MonoBehaviour{来自Web的纹理2D图像;无效开始(){Vuforia应用程序。实例。OnVuforiaInitialized+=OnVuforiaInitialize;}void OnVuforiaInitialized(Vuforia初始化错误){StartCoroutine(RetrieveTextureFromWeb());}IEnumerator从Web()检索文本{using(UnityWebRequest uwr=UnityWeb请求纹理.GetTexture(“https://library.vuforia.com/sites/default/files/vuforia-library/articles/solution/Magic%20Leap%20Related%20Content/Astronaut-缩放.jpg”){收益回报超高频。SendWebRequest();if(uwr.result!=UnityWebRequest.result.Success){调试。日志(uwr.error);}其他的{//web请求完成后获取下载的纹理var texture=下载句柄文本。获取内容(uwr);imageFromWeb=纹理;调试。日志(“图片下载”+uwr);从下载的文本()创建图像目标;}}}无效CreateImageTargetFromDownloadedTexture(){var mTarget=VuforiaBehaviour。实例。观察员工厂。创建图像目标(来自Web的图像,0.1f,“宇航员”);//将DefaultObserverEventHandler添加到新创建的游戏对象mTarget.game对象。添加组件<DefaultObserverEventHandler>();调试。日志(“目标已创建并处于活动状态”+mTarget);}}