归海一啸
管理员
管理员
  • 社区居民
  • 最爱沙发
  • 忠实会员
  • 喜欢达人
  • 原创写手
阅读:4812回复:15

(Unity3d)Vuforia开发高阶八-Cloud Recognition 最佳体验(Books)(第二部分)

楼主#
更多 发布于:2015-07-12 23:50
第二部分:如何处理Books案例中的数据内容



如何获取Target对应的数据内容呢?
两种方法:
1、绑定metadata,进行解析
2、根据不同的Target名称或者id,从自己搭建的后台服务器获取对应的数据,这个数据看你的需要。

Unity3d中,
根据TargetSearchResult这个类中的TargetName UniqueTargetId属性。

图片:图片18.png


ImageTracker imageTracker = TrackerManager.Instance.GetTracker<ImageTracker>();

IEnumerable<TargetFinder.TargetSearchResult> searchResults = imageTracker.TargetFinder.GetResults();

foreach (TargetFinder.TargetSearchResult tsr in searchResults) {
Debug.Log("Target Name: " + tsr.TargetName + ", Target ID: " + tsr.UniqueTargetId);
}

这个类在Android中,
需要使用这两个方法

图片:图片19.png


iOS中,

图片:图片20.png



那么对于Books开发的案例,剩下的就是换识别图和内容了!
换识别图的方法与前面介绍的一样:
http://www.arvrschool.com/read.php?tid=42&fid=21

更新内容,主要在metadata中的json文件修改。


Unity3d中,获取Metadata最主要的就是这个方法:
根据识别图获取metadata数据:
/// &lt;summary&gt;
    /// Handles new search results
    /// &lt;/summary&gt;
    /// &lt;param name="targetSearchResult"&gt;&lt;/param&gt;
    public void OnNewSearchResult(TargetFinder.TargetSearchResult targetSearchResult)
    {
        // This code demonstrates how to reuse an ImageTargetBehaviour for new search results and modifying it according to the metadata
        // Depending on your application, it can make more sense to duplicate the ImageTargetBehaviour using Instantiate(), 
        // or to create a new ImageTargetBehaviour for each new result
  
        // Vuforia will return a new object with the right script automatically if you use
        // TargetFinder.EnableTracking(TargetSearchResult result, string gameObjectName)
          
        //Check if the metadata isn't null
        if(targetSearchResult.MetaData == null)
        {
            return;
        }
  
        // enable the new result with the same ImageTargetBehaviour:
        ImageTargetBehaviour imageTargetBehaviour = mObjectTracker.TargetFinder.EnableTracking(targetSearchResult, mParentOfImageTargetTemplate) as ImageTargetBehaviour;
  
        if (imageTargetBehaviour != null)
        {
            // stop the target finder
            mCloudRecoBehaviour.CloudRecoEnabled = false;
              
            // Calls the TargetCreated Method of the SceneManager object to start loading
            // the BookData from the JSON
            mContentManager.TargetCreated(targetSearchResult.MetaData);
            mContentManager.AnimationsManager.SetInitialAnimationFlags();
        }
}


在unity3d中,如何设置json文件的路径:


由于完整的链接地址为:
string fullBookURL = JsonServerUrl + jsonBookUrl;
JsonServerUrl 是公有变量,并被定义为:
https://developer.vuforia.com/samples/cloudreco/json/
fullBookURLjson文件地址:
https://developer.vuforia.com/samples/cloudreco/json/samplebook2.json
因此demo中,metadata保存的数据为json文件名称,samplebook2.json
当然只要保证全路径是正确的即可。

针对U3D分析了Books demo的实现原理,其他两个平台类似。
AR学院(www.arvrschool.com),从这里感触未来!

欢迎分享

changsheng
侠客
侠客
  • UID392
  • 粉丝0
  • 关注0
  • 发帖数11
沙发#
发布于:2016-01-19 13:33
上面那段代码获取到的metadata数据,这个metadata数据拿到后怎么才能用呢?
归海一啸
管理员
管理员
  • 社区居民
  • 最爱沙发
  • 忠实会员
  • 喜欢达人
  • 原创写手
板凳#
发布于:2016-01-19 15:00
changsheng:上面那段代码获取到的metadata数据,这个metadata数据拿到后怎么才能用呢?回到原帖
元数据是json文件地址,获取json文件之后再解析其中包含的信息。
AR学院(www.arvrschool.com),从这里感触未来!
liugang121
侠客
侠客
  • UID1197
  • 粉丝0
  • 关注1
  • 发帖数37
  • 社区居民
  • 忠实会员
地板#
发布于:2016-05-13 21:03
楼主,我已经上传了json文件,怎么去得到类似https://developer.vuforia.com/samples/cloudreco/json/samplebook2.json的地址啊??
归海一啸
管理员
管理员
  • 社区居民
  • 最爱沙发
  • 忠实会员
  • 喜欢达人
  • 原创写手
4楼#
发布于:2016-05-13 23:36
liugang121:楼主,我已经上传了json文件,怎么去得到类似https://developer.vuforia.com/samples/cloudreco/json/samplebook2.json的地址啊??回到原帖
额,上传到这里没用额,你自己得有个服务器
AR学院(www.arvrschool.com),从这里感触未来!
liugang121
侠客
侠客
  • UID1197
  • 粉丝0
  • 关注1
  • 发帖数37
  • 社区居民
  • 忠实会员
5楼#
发布于:2016-05-14 08:52
自己有个服务器??什么样的服务器啊?不懂a?
qqq154154
贫民
贫民
  • UID2336
  • 粉丝0
  • 关注0
  • 发帖数8
6楼#
发布于:2016-08-13 16:46
liugang121:自己有个服务器??什么样的服务器啊?不懂a?回到原帖
老师说话跟教程一样,都只说一半,难怪这里的人越来越少。前面就多,因为前面的课程都出问题,后面还有人来看么?
qqq154154
贫民
贫民
  • UID2336
  • 粉丝0
  • 关注0
  • 发帖数8
7楼#
发布于:2016-08-13 16:48
归海一啸:元数据是json文件地址,获取json文件之后再解析其中包含的信息。回到原帖
我就想问问,怎么解析?如果我们什么都懂,如果都懂,看老外的了
归海一啸
管理员
管理员
  • 社区居民
  • 最爱沙发
  • 忠实会员
  • 喜欢达人
  • 原创写手
8楼#
发布于:2016-08-13 17:38
qqq154154:我就想问问,怎么解析?如果我们什么都懂,如果都懂,看老外的了回到原帖
有个性!
json解析百度一大把(都是中文的),而且Vuforia的Sample里面有json解析的源码~先去找找,找不到加QQ群问我~
AR学院(www.arvrschool.com),从这里感触未来!
归海一啸
管理员
管理员
  • 社区居民
  • 最爱沙发
  • 忠实会员
  • 喜欢达人
  • 原创写手
9楼#
发布于:2016-08-13 17:40
qqq154154:老师说话跟教程一样,都只说一半,难怪这里的人越来越少。前面就多,因为前面的课程都出问题,后面还有人来看么?回到原帖
额,同学~服务器我可不教。这玩意有兴趣可以百度~手把手教得收学费好吗~
AR学院(www.arvrschool.com),从这里感触未来!
2445239437
侠客
侠客
  • UID1095
  • 粉丝0
  • 关注4
  • 发帖数26
  • 社区居民
10楼#
发布于:2016-11-12 21:37
归海老师,您好,我昨天学习了服务器和本地Json的读取,我想问您一个问题,这个metadat能动态修改识别图片吗?它相比于一般的Json文件有什么优势呢
归海一啸
管理员
管理员
  • 社区居民
  • 最爱沙发
  • 忠实会员
  • 喜欢达人
  • 原创写手
11楼#
发布于:2016-11-13 09:25
2445239437:归海老师,您好,我昨天学习了服务器和本地Json的读取,我想问您一个问题,这个metadat能动态修改识别图片吗?它相比于一般的Json文件有什么优势呢回到原帖
metadata其实就是一个文本,和json没什么关系。如果想动态修改,直接修改服务器端的json文件内容即可。
AR学院(www.arvrschool.com),从这里感触未来!
2445239437
侠客
侠客
  • UID1095
  • 粉丝0
  • 关注4
  • 发帖数26
  • 社区居民
12楼#
发布于:2016-11-18 16:23
归海老师,您好,那我不用它的metadata,直接用json进行操作不行么
2445239437
侠客
侠客
  • UID1095
  • 粉丝0
  • 关注4
  • 发帖数26
  • 社区居民
13楼#
发布于:2016-11-18 16:23
最近又有课要结束了,复习了一下
归海一啸
管理员
管理员
  • 社区居民
  • 最爱沙发
  • 忠实会员
  • 喜欢达人
  • 原创写手
14楼#
发布于:2016-11-18 19:38
2445239437:归海老师,您好,那我不用它的metadata,直接用json进行操作不行么回到原帖
不行,Target对应Metadata,metadata对应json
AR学院(www.arvrschool.com),从这里感触未来!
上一页
游客

返回顶部